当您用c编写一个程序时,它有很多printf用于很多目的:调试、信息等。我想在gtk中做一些类似的事情,有一些小部件可以显示我在普通c程序中通常要做的所有printf消息。
谢谢,
-UPDATE-我使用vte作为建议的ptomato。尽管出现了一些问题。我使用的是glade-3,当文件glade打开时,vte小部件没有显示。我注意到在打开时会显示很多警告和2个严重错误。其中一个关键的问题是
Unable to load module 'vte' from any search paths我通过apt-get安装了libvte-dev,并且知道我在小部件调色板中看到了
发布于 2010-08-12 15:10:32
您可以使用VTE,这是一个终端模拟器小部件。我不确定,但我认为您可以使用vte_terminal_set_pty()将程序的stdout重定向到小部件。
发布于 2010-08-12 11:21:59
您可以使用asprintf()作为GNU扩展来执行格式化输出,它存储在新分配的内存中,必须在以后释放。
char* str;
asprintf(&str, "It is a number %d\n", 1);
//...
free(str);相反,您可以使用snprintf(),它不会为您分配任何内容,它只是为您填充一个字符数组(作为格式化输出)。
char str[100];
snprintf(str, 100, "It is number %d\n", 1);您也可以使用g_string_printf(),它是一个glib函数,但是它将格式化的输出存储到一个GString变量中。
GString str;
g_string_printf(&str, "It is number %d\n", 1);
//...
g_string_free(&str, TRUE);将字符串作为格式化输出时,可以将其用作任何GTK小部件的文本。
发布于 2010-08-12 11:50:23
您可以创建text view或使用label。
将此文本视图添加到父窗口,即Gtk Main window。您可以决定添加哪些其他小部件。(可以是滚动窗口,然后是文本视图)。
每次要显示日志时,都可以使用gtk_text_view_set_buffer接口在窗口上显示文本。
https://stackoverflow.com/questions/3464430
复制相似问题