2012-01-24 22 views
5

Esto es parte fundamental de mi menú creado en tiempo de ejecución:menú de iconos GTK con

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

menú funciona bien, pero esto es sólo una "imagemenuitem" en la cual veo etiqueta, pero no veo la imagen. ¿Qué puede estar mal aquí?

Gtk2, Ubuntu 11.10

Respuesta

4

No estoy 100% seguro, pero creo iconos en los menús y botones ya no están habilitadas por defecto. Debes encenderlos para que aparezcan.

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

O usando dconf:

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

Gracias Sean. Parece que tienes razón. Sin embargo, la solución sugerida no funciona para mí. Lo intento también con gconf-editor sin resultados. –

+0

Esta configuración ahora está controlada por dconf, ya que el escritorio Gnome se ha alejado de gconf. No recuerdo el nombre de la configuración y no puedo verificarla en este momento, pero debe estar debajo de "org.gnome.desktop" en algún lugar. – ptomato

+0

Thanx tomato. Lo encuentro con dconf-editor en org.gnome.desktop.interface. Allí revisé "buttons-have-icons" y "menus-have-icons", pero aún no tengo imagen en el menú. –

4

Hey pregunta bastante viejo, así que probablemente no mucho uso. Pero estaba teniendo un problema muy similar con un menú que no muestra imágenes (en mi caso, era un menú emergente activado por un botón).

La forma en que lo resolvió estaba llamando al

gtk_image_menu_item_set_always_show_image(menu_item,TRUE); 

Esto resolvió mi problema, ahora mis imágenes muestran siempre: D woot :) Como pasa en 1 (verdadero) significa que siempre va a mostrar.

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

+0

No use '1', eso es un argumento [' gboolean'] (https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean) -type, entonces use ['TRUE '] (https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS). – unwind

Cuestiones relacionadas