probleme C -> GTK -> glade: Valeurs éronnées
Dernière réponse : dans Programmation
Bonjour, j'ai découvert Glade il y a peu de temps et je l'ai trouvé génial.
Mais j'ai un très gros probleme:
Quand je récupere une valeur entrée par l'utilisateur (avec un spin button) en la fprintfant la valeur est totalement differente et, elle ne change pas quand change la valeur ( je suis sous XP ou Vista)
ex:
j'execute mon programme, je met la valeur du spinbutton à 8, je vais chercher le fichier ou je l'ai fprintfé et je trouve une valeur.
je recommence (j'ai supprimé le fichier ou j'avais fprintfé la 1ere valeur), je met la valeur à 99 et la valeur fprintfé est la même que la premiere.
Si cela n'est pas tres claire, je met le "interface.c":
j'ai juste rajouté les fprintfs et les commentaires (l 53-54 et 59-60)
Sinon le projet en entier, vous pouvez le tester svp (on sait jamais ça peut fonctionner autre part
)
http://ptitcois35.free.fr/project2.zip
Voila, merci de vos futur réponses
Mais j'ai un très gros probleme:
Quand je récupere une valeur entrée par l'utilisateur (avec un spin button) en la fprintfant la valeur est totalement differente et, elle ne change pas quand change la valeur ( je suis sous XP ou Vista)
ex:
j'execute mon programme, je met la valeur du spinbutton à 8, je vais chercher le fichier ou je l'ai fprintfé et je trouve une valeur.
je recommence (j'ai supprimé le fichier ou j'avais fprintfé la 1ere valeur), je met la valeur à 99 et la valeur fprintfé est la même que la premiere.
Si cela n'est pas tres claire, je met le "interface.c":
/* * DO NOT EDIT THIS FILE - it is generated by Glade. */ #ifdef HAVE_CONFIG_H # include <config.h> #endif #include <sys/types.h> #include <sys/stat.h> #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #include <string.h> #include <stdio.h> #include <gdk/gdkkeysyms.h> #include <gtk/gtk.h> #include "callbacks.h" #include "interface.h" #include "support.h" #define GLADE_HOOKUP_OBJECT(component,widget,name) \ g_object_set_data_full (G_OBJECT (component), name, \ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) GtkWidget* create_window1 (void) { FILE *fichier = NULL; fichier = fopen("test.txt", "a+"); GtkWidget *window1; GtkWidget *vbox1; GtkObject *spinbutton1_adj; GtkWidget *spinbutton1; GtkWidget *bouton; window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window1), _("window1")); vbox1 = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (window1), vbox1); spinbutton1_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10); spinbutton1 = gtk_spin_button_new (GTK_ADJUSTMENT (spinbutton1_adj), 1, 0); gtk_widget_show (spinbutton1); gtk_box_pack_start (GTK_BOX (vbox1), spinbutton1, FALSE, FALSE, 0); //en dessous je met la valeur de spinbutton1 et spinbutton1_adj fprintf(fichier,"%d\n%d\n%d\n%d", spinbutton1, spinbutton1_adj, &spinbutton1, &spinbutton1_adj); bouton = gtk_check_button_new_with_mnemonic (_("checkbutton1")); gtk_widget_show (bouton); gtk_box_pack_start (GTK_BOX (vbox1), bouton, FALSE, FALSE, 0); //pareil pour bouton fprintf(fichier,"%d\n%d", bouton, &bouton); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (window1, window1, "window1"); GLADE_HOOKUP_OBJECT (window1, vbox1, "vbox1"); GLADE_HOOKUP_OBJECT (window1, spinbutton1, "spinbutton1"); GLADE_HOOKUP_OBJECT (window1, bouton, "bouton"); return window1; }
j'ai juste rajouté les fprintfs et les commentaires (l 53-54 et 59-60)
Sinon le projet en entier, vous pouvez le tester svp (on sait jamais ça peut fonctionner autre part
)http://ptitcois35.free.fr/project2.zip
Voila, merci de vos futur réponses
Autres pages sur : probleme gtk glade valeurs eronnees
Lassé par la pub ? Créez un compte
Tu crées de objets graphiques (que j'appelle widget) dans ta fonction, mais aucune fonction n'est attachée aux actions des widgets. Tout ce que tu fait n'a aucune incidence sur rien, il faut gérer les actions. Pour ceci, gtk utilise les signaux: tu associes un type de signal à une fonction (que tu écris). Quand l'utilisateur modifiera un widget, un signal est émis par ce widget, et donc ta fonction que tu a lié au signal sera appelée.
lorsque l'utilisateur changera ton spin, le signal "changed" est envoyé. Dans ton cas, tu n'y a rien connecté, alors ça ne fait rien.
la fonction pour connecter est un truc du genre signal_connect (mais c'est pas exactement ça). Je te suggère de rechercher un tutorial simple pour expliquer les signaux.
lorsque l'utilisateur changera ton spin, le signal "changed" est envoyé. Dans ton cas, tu n'y a rien connecté, alors ça ne fait rien.
la fonction pour connecter est un truc du genre signal_connect (mais c'est pas exactement ça). Je te suggère de rechercher un tutorial simple pour expliquer les signaux.
Merci beaucoup, tu me débloque CRicky.
Si j'ai bien compris le signal_connect sert a par exemple si on clique sur un bouton => tel ou tel fenetre s'ouvre non ?
Je ais rechercher cette appremidi
Sinon est-ce que tu penses qu'il faut que j'apprennne la GTK ? avec toutes les fonction les plus importantes (comme sur le siteduzero ?)
Si j'ai bien compris le signal_connect sert a par exemple si on clique sur un bouton => tel ou tel fenetre s'ouvre non ?
Je ais rechercher cette appremidi
Sinon est-ce que tu penses qu'il faut que j'apprennne la GTK ? avec toutes les fonction les plus importantes (comme sur le siteduzero ?)
Je me suis enseigné sur internet, j'ai compris le modde de fonctionnement (en fait la fonction est "g_signal_connect"), mais c'est plus pour les fonction "output" que j'ai du mal.
J'ai recherché sur google mais je n'ai trouvé que des tutos en anglais et je ne comprend pas très bien l'anglais.
Sinon il y a le tuto sur le site du zéro mais je ne le trouve pas très complet (on ne parle pas de "spinbutton", de "combobox" etc.).
Voila donc si vous connaissez des Tutos en français de préférence je suis preneur
EDIT: j'ai trouvé la fonction de sortie du spin button (gtk_spin_button_get_value_as_int ) mais je ne sais pas comment l'utiliser.
Sinon dans l'onglet "signal" de glade il y a plusieur fonctions, mais gtk_spin_button_get_value_as_int n'y est pas donc si vous savez l'utilisez (et celle pour les comboboxes) n'hésites pas.
Merci
J'ai recherché sur google mais je n'ai trouvé que des tutos en anglais et je ne comprend pas très bien l'anglais.
Sinon il y a le tuto sur le site du zéro mais je ne le trouve pas très complet (on ne parle pas de "spinbutton", de "combobox" etc.).
Voila donc si vous connaissez des Tutos en français de préférence je suis preneur
EDIT: j'ai trouvé la fonction de sortie du spin button (gtk_spin_button_get_value_as_int ) mais je ne sais pas comment l'utiliser.
Sinon dans l'onglet "signal" de glade il y a plusieur fonctions, mais gtk_spin_button_get_value_as_int n'y est pas donc si vous savez l'utilisez (et celle pour les comboboxes) n'hésites pas.
Merci
En fait dans ta fonction que tu as connecté avec le signal changed, tu utilises la fonction gtk_spin_button_get_value_as_int pour connaitre dynamiquement la nouvelle valeur du spin.
Pour t'entrainer tu peux changer le contenu d'un deuxième spin box, lorsque le premier change. Ne fais pas la même chose avec l'autre, ça risque de partir en boucle infinie
Pour t'entrainer tu peux changer le contenu d'un deuxième spin box, lorsque le premier change. Ne fais pas la même chose avec l'autre, ça risque de partir en boucle infinie
Mais avant je dois faire un signal qui mène vers une fonction ?
Si ou je peux mettre en parametre ce pointeur non ?
Tu peux pas faire un petit code archi simplifié (fait en 3 min) pour que je vois l' "architecture", sinon c'est quoi l'équivalent de gtk_spin_button_get_value_as_int pour un combobox ?
Si ou je peux mettre en parametre ce pointeur non ?
Tu peux pas faire un petit code archi simplifié (fait en 3 min) pour que je vois l' "architecture", sinon c'est quoi l'équivalent de gtk_spin_button_get_value_as_int pour un combobox ?
Je te conseille de suivre un tutorial ça te sera plus simple.
http://library.gnome.org/devel/gtk-tutorial/stable/
http://library.gnome.org/devel/gtk-tutorial/stable/
Lassé par la pub ? Créez un compte
- Contenus similaires :
- Forumprobleme gtk +
- Forum[VBA] probleme valeur requete
- ForumProblème avec trouver une valeur dans un petit tableau excel
- ForumProblème de SDram, valeur réelle differente (RESOLU)
- ForumDes problem de valeur, avec des "Potar" et des interupteur...
- Forumprobleme choix de valeur de classement
- ForumProblème pour envoyer des valeurs php vers une fonction javascript
- Forumstr_replace valeur probleme
- Forumprobleme de recuperation de valeur sur php
- Voir plus