我按照下面显示的教程:http://zetcode.com/tutorials/gtktutorial/firstprograms/
我的问题是图标没有显示。我的操作系统是Ubuntu。我尝试了几个不同的图标,有几个不同的大小和文件类型,但没有一个工作。一个是25像素宽,19像素高的.png,另一个是185像素宽,210像素高的.jpg。我在这里更改了控制它的行中引用的文件(它什么也没做):
gtk_window_set_icon(GTK_WINDOW(window), create_pixbuf("web.png"));
我甚至尝试通过启用菜单选项来更改gnome的配置编辑器中的设置。
我用Google搜索了一些并没有找到任何帮助,所以我想我会问堆栈溢出的优秀编码员。 ^ _ *
感谢阅读。
你的朋友,
user2085446
#include <gtk/gtk.h>
GdkPixbuf *create_pixbuf(const gchar * filename)
{
GdkPixbuf *pixbuf;
GError *error = NULL;
pixbuf = gdk_pixbuf_new_from_file(filename, &error);
if(!pixbuf) {
fprintf(stderr, "%s\n", error->message);
g_error_free(error);
}
return pixbuf;
}
int main( int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "icon");
gtk_window_set_default_size(GTK_WINDOW(window), 230, 150);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_icon(GTK_WINDOW(window), create_pixbuf("web.png"));
gtk_widget_show(window);
g_signal_connect_swapped(G_OBJECT(window), "destroy",
G_CALLBACK(gtk_main_quit), NULL);
gtk_main();
return 0;
}
答案 0 :(得分:0)
我用48x48像素的png文件运行这个程序,该程序运行良好。 我的操作系统是Ubuntu 10.04 LTS。 除了png文件与程序相同的目录,或设置绝对目录
答案 1 :(得分:0)
并非每个窗口管理器主题都在标题栏中显示图标。我相信Ubuntu的默认值不会。 (gtk_window_set_icon
函数只是一个提示,窗口管理器可以自由忽略它。)从@ syler截图的外观来看,它们没有使用默认的Ubuntu主题,所以图标显示出来。