Mon probleme est simple et facilement resolu si l'on possede GTK+ 2.6 et plus avec gtk_button_set_image
Mais voila comment faire si l'on a une version anterieur et que l'on ne veut pas changer de version ?
merci d'avance, zakos
Mon probleme est simple et facilement resolu si l'on possede GTK+ 2.6 et plus avec gtk_button_set_image
Mais voila comment faire si l'on a une version anterieur et que l'on ne veut pas changer de version ?
merci d'avance, zakos
pour créer un boutton avec image il fallait suivre les étapes suivantes
/* Creation d'un bouton */
p_button = gtk_toggle_button_new();
/*insérer une image dans un bouton*/
Image = gtk_image_new_from_file("bob.bmp");
gtk_container_add(GTK_CONTAINER(p_button),Image);
j'ai essayer ta solution et cela ma rendu le message d erreur ci dessous :
attempting to add a widget with type GtkImage in a container of type GtkToggleButton, but the widget is already inside a container of type GtkToggleButton
Est tu sur de ta solution ou mon code est il faux ?
oui je suis sur de ma solution parce que j'ai déja utlisé dans un code donc peut etre tu avais un erreur dans ton code .
Déjà, pourquoi tu ne veux pas passer à une version supérieure ????
Ca ne prend pas longtemps pourtant de tout installer !!!!
A mon avis (c'est mon avis), les programmeurs de GTK n'ont pas directement pensé qu'on voulait d'autres image qu'ils proposent eux...
Donc tu ne peux si ce n'est que d'utiliser un STOCK
Bien sûr que si, il suffit de chercher un peux.
Les fonction get/set ne sont que des raccourcis pour modifier/lire les propriétés d'un objet.
Bien sûr il existe une propriétés image pour les GtkButton. Il suffit de la modifier à l'aide de la fonction g_object_set![]()
Purée !!! Je savais que les widgets avaients des propriétés mais je ne savais pas qu'on pouvait y toucher avec une fonction autre que celles de ce widget !!!!
Merci![]()
Donc, si je comprend bien, dans mon code ( ie declaration bouton, allocation memoire, " boxage " puis modif du bouton en temps voulu ), je dois ajouter une petite modification propriété en mettant le paramettre image du bouton a TRUE, puis ... gtk_button_set_image marche ???
( j'avou ca serait beau mais ... pourquoi mettre ce parametre a FALSE en defaut ??? )
Pourquoi à TRUE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 #include <gtk/gtk.h> int main (int argc, char **argv) { GtkWidget *button = NULL; GtkWidget *window = NULL; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (G_OBJECT (window), "delete-event", gtk_main_quit, NULL); button = gtk_button_new (); gtk_button_set_label (GTK_BUTTON (button), "Banzaï"); g_signal_connect (G_OBJECT (button), "clicked", gtk_main_quit, NULL); { GtkWidget *image = NULL; image = gtk_image_new_from_stock (GTK_STOCK_QUIT, GTK_ICON_SIZE_BUTTON); g_object_set (G_OBJECT (button), "image", image, NULL); } gtk_container_add (GTK_CONTAINER (window), button); gtk_widget_show_all (window); gtk_main (); return 0; }
A cela me dit que le bouton n'a pas de propriété "image"...
J'ai donc essayer de placer un g_object_set_property(...); apres l'allocation des boutons mais ne sachant pas ce qu'est une GValue, je ne peut pas avancer ( et comme le cast G_TYPE_VALUE() ne marche pas avec n'importe quoi :d:p )
... aurais je une version tellement ancienne que meme ta méthode n'est pas possible ( étrangement, c'est celle donnée par l'école ... à les écoles d'ingé ... à la pointe de la technologie :d:p )
Partager