带有图标的Gtk菜单

带有图标的Gtk菜单,gtk,Gtk,这是我运行时创建的菜单的关键部分: 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

这是我运行时创建的菜单的关键部分:

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、Ubuntu11.10我不是100%确定,但我相信菜单和按钮中的图标在默认情况下不再启用。你需要打开它们才能让它们出现

gconftool-2 --type bool --set /desktop/gnome/interface/menus_have_icons true
或使用
dconf

dconf write /org/gnome/desktop/interface/menus-have-icons true

嘿,这是个很老的问题,所以可能没什么用。但我遇到了一个非常类似的问题,菜单没有显示图像(在我的例子中,它是由按钮触发的弹出菜单)

我解决问题的方法是调用

gtk_image_menu_item_set_always_show_image(menu_item,TRUE);
这解决了我的问题,现在我的图像总是显示:D woot:),因为传入1(true)意味着它将始终显示

参考:

Thanx Sean。看来你是对的。然而,建议的解决方案不适合我。我也尝试使用gconf编辑器,但没有结果。这个设置现在由dconf控制,因为Gnome桌面已经从gconf转移。我记不起设置的名称,现在也无法检查它,但它应该在
org.gnome.desktop
somewhere.Thanx下。我通过org.gnome.desktop.interface下的dconf编辑器找到它。在那里,我选中了“按钮有图标”和“菜单有图标”,但菜单上仍然没有图像。我仍然不喜欢如何获得它,但我想知道如果可以使用“自定义图标”而不是库存图标,是否会显示图像?似乎这在当前的Gnome 3.10中不再起作用。不要使用
1
,这是一个-type参数,所以请使用。