2010-10-08 7 views
4

J'ai un GtkButton dans un GtkHButtonBox qui n'affiche pas l'image que j'y ajoute. Cela montre juste le texte. Voici le code:GtkButton ne montre que du texte mais pas d'image

GtkImage *image = (GtkImage *) gtk_image_new_from_file("Gateway-LT21-netbook-2-540x359"); 
GtkButton *button = (GtkButton *) gtk_button_new_with_label("test"); 
gtk_button_set_image(button, (GtkWidget *) image); 

Y at-il quelque chose qui me manque?

Répondre

5

Assurez-vous que le réglage "gtk-bouton-images" est définie sur true.

GtkSettings *default_settings = gtk_settings_get_default(); 
g_object_set(default_settings, "gtk-button-images", TRUE, NULL); 

Remarque: Cela devrait suivre la construction de la première fenêtre (et bien sûr précéder la boucle principale). Si je ne me trompe pas, c'est un changement plutôt récent dans Gnome - pour une raison quelconque, ils ont décidé que les icônes n'apparaissent pas sur les boutons par défaut (cela semble aussi s'appliquer au thème MS Windows standard).

+0

Ce paramètre va-t-il fonctionner pour toutes les fenêtres et tous les dialogues? – gvalero87

+1

@ gvalero87: oui, cela fonctionne à l'échelle de l'application. –

+1

Et si je voulais juste montrer l'image d'un bouton et pas tous? – gvalero87

1

Essayez ceci:

gtk_widget_show(GTK_WIDGET(image)) 
0

Apparemment, au moins dans GTK + 3, il existe une fonction appelée gtk_button_set_always_show_image(), qui est censée activer une image pour un bouton particulier sans tenir compte des paramètres globaux.

Questions connexes