[C][GTK] Quelque chose d'incompréhensible

Fermé
luc743 Messages postés 109 Date d'inscription samedi 8 août 2009 Statut Membre Dernière intervention 4 mai 2011 - Modifié par luc743 le 8/03/2011 à 16:06
Bonjour,

Je me suis remis à programmé en C avec GTK hier soir.
Mais il y a quelque chose que je ne comprend pas, voici un exemple :

J'ai un label nommé texte et un button nommé button ...

Je fais un g_signal_connect sur le boutton :
  
g_signal_connect(G_OBJECT(button), "clicked",   
      G_CALLBACK(button_clicked), GTK_LABEL(texte));  


Et puis dans ma fonction appelée je fais ça :

void button_clicked(GtkWidget *widget, gpointer texte)  
{  
  gtk_label_set_text(texte,"Texte changé");  
}  


Voila, ça marche, mais le problème est que si je veux touché au widget button dans cette fonction, je ne peux pas, le programme plante :

Voici ce que je met dans la fonction :

void button_clicked(GtkWidget *widget, gpointer texte, gpointer button)  
{  
  gtk_label_set_text(texte,"Texte changé");  
  gtk_button_set_label(button,"lol");  

}  


Voila, je ne comprend pas comment modifier des widgets dans une fonction appelés par un CALLBACK ..

Je veux tout simplement pouvoir modifié tout mes widgets créer dans le main dans une fonction appellé par un CALLBACK


Merci d'avance :)