2012-01-24 13 views
5

Questo è parte fondamentale del mio menù creato in fase di esecuzione:menù Gtk con icone

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 funziona male, ma questo è solo un "imagemenuitem" su cui vedo l'etichetta, ma non si trova un'immagine. Cosa può esserci di sbagliato qui?

Gtk2, Ubuntu 11.10

risposta

4

non sono sicuro al 100%, ma credo icone nel menu e pulsanti non sono abilitate di default. Devi accenderli per farli apparire.

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

o utilizzando dconf:

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

Grazie Sean. Sembra che tu abbia ragione. Tuttavia, la soluzione suggerita non funziona per me. Provo anche con gconf-editor senza risultati. –

+0

Questa impostazione è ora controllata da dconf, dal momento che il desktop Gnome è passato da gconf. Non riesco a ricordare il nome dell'impostazione e non posso controllarlo al momento, ma dovrebbe trovarsi in "org.gnome.desktop" da qualche parte. – ptomato

+0

Pomodoro di ringraziamento. Lo trovo con dconf-editor sotto org.gnome.desktop.interface. Lì ho controllato "buttons-have-icons" e "menus-have-icons", ma non ho ancora un'immagine sul menu. –

4

Hey abbastanza vecchia domanda quindi probabilmente non serve a molto. Ma stavo avendo un problema molto simile con un menu che non mostrava le immagini (nel mio caso era un menu popup attivato da un pulsante).

Il modo in cui ho risolto stava chiamando il

gtk_image_menu_item_set_always_show_image(menu_item,TRUE); 

Questo risolto il mio problema, ora le mie immagini mostrano sempre: D woot :) Come passa in 1 (vero) significa che mostrerà sempre.

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

+0

Non utilizzare '1', è un argomento [' gboolean'] (https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean) -type, quindi usare ['TRUE '] (https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS). – unwind