#1 Le 26/04/2006, à 22:54
- keke
dialogue avec gtkentry (glade) [résolu]
:/ je developpe un programme avec Gedit et Glade et je n'arrive pas à obtenir ce que je veux.
Ce que je veux, c'est donné des valeurs par l'intermediaire de l'interface graphique, que ces valeurs soient prise en compte dans un algorythme qui me retourne d'autres valeurs.
La fenetre que j'ai créé sous glade est rayon_du_cylindreWindow qui est traité par un signal destroy
Dans cette fenetre je dispose d'un gtkentry ou je desire tapper les valeurs qu'utilisera mon
algorythme et d'un bouton valider.Dans ma programmation, j'ai déclaré les liens suivants :
dans interface.c:
ftWidgetLoad (ftWidget.mainWindowXML, "rayoncylindre1Button",&ftWidget.rayoncylindre1Button);
g_signal_connect(ftWidget.rayoncylindre1Button,"activate",G_CALLBACK(on_rayoncylindre1_act
ivate), NULL);
g_signal_connect(ftWidget.rayoncylindre1TaskBarButton,"clicked",G_CALLBACK(on_rayoncylin
dre1_activate), NULL);//
void rayoncylindre(void)
{
//create the cylindrewindow interface
ftWidget.rayoncylindre.rayoncylindreWindowXML =
glade_xml_new("ft.glade","rayon_du_cylindreWindow",NULL);
//store pointer in this window in ftWidget
ftWidgetLoad
(ftWidget.rayoncylindre.rayoncylindreWindowXML,"rayon_du_cylindreWindow",
&ftWidget.rayoncylindre.rayon_du_cylindreWindow);
ftWidgetLoad (ftWidget.rayoncylindre.rayoncylindreWindowXML,"button20",
&ftWidget.rayoncylindre.truebutton);
ftWidgetLoad (ftWidget.hauteurcylindre.hauteurcylindreWindowXML,"entry23",
&ftWidget.rayoncylindre.rayon);
//connect functions to window widget
g_signal_connect(ftWidget.rayoncylindre.rayon_du_cylindreWindow,"destroy",G_CALLBACK(on_
rayon_du_cylindre_destroy),NULL);
g_signal_connect(ftWidget.rayoncylindre.truebutton,"clicked",G_CALLBACK(on_button20_clicke
d),NULL);
g_signal_connect(ftWidget.rayoncylindre.rayon,"insert_text",G_CALLBACK(on_entry23_insert_te
xt),NULL);
}
dans callback.c
void on_rayoncylindre1_activate (GtkObject *object,gpointer user_data)//
{
verboseInTextView("affichage des parametres rayon\n","noTime");
rayoncylindre();
return;
}
void on_rayon_du_cylindre_destroy (GtkObject *object,gpointer user_data)
{
verboseInTextView("héhé","noTime");
gtk_widget_destroy (ftWidget.rayoncylindre.rayon_du_cylindreWindow);
return;
}
void on_button20_clicked (GtkObject *object,gpointer user_data)
{
verboseInTextView("héhé","noTime");
return;
}
void on_entry23_insert_text (GtkObject *object)
{
verboseInTextView("héhé","noTime");
printf("valeur gtk %f",object);
return;
}
Le problème est qu'avec tout cela, je ne sais pas comment lui faire prendre la valeur ecrite dans le
entry23_insert_text et la stocké.
Je pense qu'il n'y a pas grand chose à faire mais les tutoriels que j'ai ne me dise pas grand chose.
Merci « beaucoup »d'avance.
Dernière modification par keke (Le 28/04/2006, à 11:56)
Tout ce qui paraît au-dessus de tes forces n'est pas forcément impossible ; mais tout ce qui est possible à l'homme ne peut être au-dessus de tes forces
Hors ligne
#2 Le 28/04/2006, à 10:27
- PierreR
Re : dialogue avec gtkentry (glade) [résolu]
Je n'ai pas bien tout saisi (qu'est ce que ftWidgetLoad par exemple ?) mais personellement, ce que je fais et qui marche est :
- faire glade_xml_get_widget(ftWidget.rayoncylindre.rayoncylindreWindowXML, "nom du widget donné dans Glade (entry23_insert_text je crois)"); qui va retourner un pointeur vers le widget;
-puis faire gtk_entry_get_text(GTK_ENTRY(le pointeur précédent)) pour récupérer le texte (ça renvoir un pointeur de gchar).
Pour plus de détails, voir la doc de gtk : http://developer.gnome.org/doc/API/2.0/gtk/index.html.
Voila, j'espère avoir répondu à la question et bon développement avec ce merveilleux outil qu'est Glade (serieux, écrire les interfaces graphiques à la main, c'est vite lourdingue qunad on fait autre chose qu'une fenêtre avec 2 étiquettes et 3 boutons).
Hors ligne
#3 Le 28/04/2006, à 11:55
- keke
Re : dialogue avec gtkentry (glade) [résolu]
merci pierre pour ta réponse, je ne connaissais pas ce site sur le gtk et je pense que cela va mettre bien utile.Je dois avouer que Glade je ne connaissais pas quand je me suis mis au developpement de ce logiciel et je le trouve vraiment très bien.
Merci pour ta réponse et bon developpement à toi aussi
Tout ce qui paraît au-dessus de tes forces n'est pas forcément impossible ; mais tout ce qui est possible à l'homme ne peut être au-dessus de tes forces
Hors ligne