1

我从这里按照下面显示的教程: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 的配置编辑器中的设置以具有图标。

我用谷歌搜索了一些,没有找到任何有用的东西,所以我想我会问 stackoverflow 上的优秀程序员。^_*

谢谢阅读。

你的朋友,

用户2085446

#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;
}
4

2 回答 2

0

我已经用 48x48 像素的 png 文件运行了这个程序,该程序运行良好。我的操作系统是 Ubuntu 10.04 LTS。另外png文件和程序是同一个目录,或者设置绝对目录

图标在左上角

于 2013-06-05T02:55:32.753 回答
0

并非每个窗口管理器主题都会在标题栏中显示图标。我相信 Ubuntu 的默认设置没有。(这个gtk_window_set_icon功能只是一个提示,窗口管理器可以随意忽略它。)从@syler 的截图来看,他们没有使用默认的Ubuntu主题,所以图标出现了。

于 2013-06-05T06:57:17.210 回答