带图标的Gtk菜单

时间:2012-01-24 15:55:02

标签: 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(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

2 个答案:

答案 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