2012-01-24 12 views
5

To jest krytyczna część mojego czasu uruchomienia utworzonego menu:menu Gtk z ikonami

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); 

Menu działa OK, ale to jest tylko jedna „imagemenuitem”, na którym widzę etykiety, ale nie widać obrazu. Co może być nie tak?

gtk2, Ubuntu 11.10

Odpowiedz

4

nie jestem w 100% pewien, ale wierzę, ikony w menu i przyciski nie są domyślnie włączone. Musisz je włączyć, aby pojawiły się.

gconftool-2 --type bool --set /desktop/gnome/interface/menus_have_icons true 

lub używając dconf:

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

Niż Sean. Wygląda na to, że masz rację. Jednak sugerowane rozwiązanie nie działa dla mnie. Próbuję też z edytorem gconf bez wyników. –

+0

To ustawienie jest teraz kontrolowane przez dconf, ponieważ pulpit Gnome został przeniesiony z gconf. Nie pamiętam nazwy tego ustawienia i nie mogę go teraz sprawdzić, ale powinno to być gdzieś pod 'org.gnome.desktop'. – ptomato

+0

Thanx tomato. Znajduję go w edytorze dconf pod org.gnome.desktop.interface. Tam sprawdziłem "buttons-have-icons" i "menu-have-icons", ale nadal nie mam obrazu w menu. –

4

Hej dość stare pytanie więc prawdopodobnie nie dużo używać. Ale miałem bardzo podobny problem z menu nie wyświetlającym obrazów (w moim przypadku było to menu wyskakujące wywołane przyciskiem).

Sposób, w jaki rozwiązano było wywołanie

gtk_image_menu_item_set_always_show_image(menu_item,TRUE); 

to rozwiązać mój problem, teraz moje zdjęcia zawsze przedstawiają: D woot :) Jak przekazując 1 (prawda), oznacza to, że zawsze pokaże.

Ref: http://developer.gnome.org/gtk3/3.0/GtkImageMenuItem.html

+0

Nie używaj argumentu "1", który jest ['gboolean'] (https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean) -type, więc użyj [' TRUE '] (https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS). – unwind