这是我的运行时创建菜单的关键部分:
GtkWidget *menu, *menu_item;
menu = gtk_menu_new();
menu_item = gtk_image_menu_item_new_with_label("Uredi...");
//approach1 - icon don't work
//gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), gtk_image_new_from_stock(GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU));
//approach2 - icon also don't work
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), GTK_WIDGET(gtk_image_new_from_stock(GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU)));
gtk_menu_shell_append(GTK_MENU_SHELL(menu), menu_item);
g_signal_connect(G_OBJECT(menu_item), "button-release-event", G_CALLBACK(menu_RELEASE), (gpointer)"");
gtk_menu_attach_to_widget(GTK_MENU(menu), button, NULL);
gtk_widget_show_all(menu);
菜单工作正常,但这只是一个“imagemenuitem”,我看到标签,但看不到图像。 这可能有什么问题?
Gtk2,Ubuntu 11.10
答案 0 :(得分:4)
我不是百分百确定,但我相信默认情况下不再启用菜单和按钮中的图标。你需要打开它们才能显示它们。
gconftool-2 --type bool --set /desktop/gnome/interface/menus_have_icons true
或使用dconf
:
dconf write /org/gnome/desktop/interface/menus-have-icons true
答案 1 :(得分:4)
嘿老问题所以可能没多大用处。但是我遇到一个非常类似的问题,菜单没有显示图像(在我的情况下,它是由按钮触发的弹出菜单)。
我解决它的方式是调用
gtk_image_menu_item_set_always_show_image(menu_item,TRUE);
这解决了我的问题,现在我的图像总是显示:D woot :)传入1(真实)意味着它将始终显示。
价: http://developer.gnome.org/gtk3/3.0/GtkImageMenuItem.html