Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
GTk
Envoyé par: chrisss

Bonsoir,
Je suis entrain d'ecrire une app GTk a l'aide de glade, voila mon probleme:
mon app se compose de 2 fenetres:
-la premiere (window1) est la fenetre principale, elle contient differents labels, et un
bouton qui ouvre la seconde fenetre lorsque l'on clic dessus.
-la seconde (dialog box) qui contient different champs à remplir et un bouton de validation qui lorsqu'on clic dessus renvoie les differentes chaines rentrees
par l'utilisateur dans les labels de la premiere fenetre.

dans l'example qui vient le label de la premiere fenetre est le "label39", et le
champ a remplir ds la fenetre de dialog est "entry2":

el voila le bout de code concernant le bouton de validation de ma fenetre de dialogue dans mon callbacks.c :

void
on_config_station_valider_clicked (GtkButton *button,
gpointer user_data)
{
GtkWidget * fenetre_config_station =
gtk_widget_get_toplevel(GTK_WIDGET(button));

GtkWidget * station = lookup_widget(GTK_WIDGET(button), "entry2");

GtkWidget * label = lookup_widget(GTK_WIDGET(button), "label39");
gtk_label_set_text(GTK_LABEL(label), gtk_entry_get_text(GTK_ENTRY(station)));

gtk_widget_hide(fenetre_config_station);
}


Et ceci est un bout de code de mon main.c :

config_station = create_config_station();
gtk_object_set_data (GTK_OBJECT (window1), "fenetre_config_station",
config_station);


Le problème est qu'après validation par le bouton ok rien n'apparait dans le label39,
et j'ai le message d'erreur suivant:
WARNING **: Widget not found: label39
Il est clair que cela vient du fait que le label39 ne se trouve pas dans la meme
fenetre....
Quelqun sait-il ce que je dois faire pour règler ce problème ?
Merci d'avance smiling smiley

Poste le Sunday 11 January 2004 20:55:13
Répondre     Citer    
Re: GTk
Envoyé par: miguel2i

En effet, la fonction lookup_widget(obj, nom) recherche le widget nommé "nom" dans la même fenetre que obj.

Une solution est de prendre une variable globale pour chaque fenetre.
// dans main.c et les déclarer extern dans callbacks.c par exemple
GtkWindow *window1;
GtkWindow *window2;

// Dans une fonction dans callbacks.c
// Recherche d'un widget de la fenetre 1 :
lookup_widget(window1, "nom_du_widget_de_la_fenetre_1");

Poste le Thursday 15 January 2004 00:00:08
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
GTk
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons