#1 Le 11/02/2008, à 20:13
- ptitcois
Probleme en C sous Glade ( valeurs éronées)
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
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
Hors ligne
#2 Le 12/02/2008, à 18:20
- ptitcois
Re : Probleme en C sous Glade ( valeurs éronées)
ça ne vous ai jamais arrivé ça non ?
Hors ligne
#3 Le 13/02/2008, à 11:01
- telliam
Re : Probleme en C sous Glade ( valeurs éronées)
ça ne vous ai jamais arrivé ça non ?
Je ne connais pas glade mais avec cette ligne suivante tu ne vas avoir que des adresses mémoires d'afficher car spinbutton1 et spinbutton1_adj sont des pointeurs.
Est ce bien cela que tu vx faire?
fprintf(fichier,"%d\n%d\n%d\n%d", spinbutton1, spinbutton1_adj, &spinbutton1, &spinbutton1_adj);
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#4 Le 13/02/2008, à 11:06
- telliam
Re : Probleme en C sous Glade ( valeurs éronées)
si j'en crois
http://library.gnome.org/devel/gtk/stable/GtkSpinButton.html
il faudrait que tu utilises gtk_spin_button_get_value_as_int pour afficher la valeur du bouton non??
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#5 Le 13/02/2008, à 13:51
- ptitcois
Re : Probleme en C sous Glade ( valeurs éronées)
Ah merci, euh vous ne conaitriez pas des cours/tuto pour GTK+ mais trop dur ?
Hors ligne
#6 Le 13/02/2008, à 14:09
- telliam
Re : Probleme en C sous Glade ( valeurs éronées)
Google ???
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#7 Le 13/02/2008, à 15:53
- ptitcois
Re : Probleme en C sous Glade ( valeurs éronées)
oui, j'ai déja cherché mais ils sont tous en anglais...
Hors ligne
#8 Le 13/02/2008, à 21:14
- telliam
Re : Probleme en C sous Glade ( valeurs éronées)
c'est la langue scientifique de référence.
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#9 Le 13/02/2008, à 22:25
- human enemy
Re : Probleme en C sous Glade ( valeurs éronées)
Il y a des tutoriels en Français sur www.developpez.com rubrique C sous-rubrique gtk+
Sinon tu peux aussi télécharger les paquets doc glib et/ou gtk+ avec synaptic.
Ensuite tu installes devhelp et tu auras les doc de développement.
EDIT : Sinon telliam a tout bon sur l'origine de ton pb et sur la solution
Dernière modification par human enemy (Le 13/02/2008, à 22:30)
<linux user>463160</linux user>
str = g_strdup_printf ("ubuntu user : %d",20328);
Hors ligne
#10 Le 14/02/2008, à 06:32
- YokoUno
Re : Probleme en C sous Glade ( valeurs éronées)
Ce que tu peux faire aussi, c'est récupérer les sources d'une appli faite en gtk, et regarder comment c'est fait.
Une appli minuscule, hein, va pas essayer ça avec gimp
A part ça, telliam a raison au sujet de l'anglais. Dans ce cas, pourquoi ne pas essayer de faire d'une pierre deux coups: tu apprends gtk et tu en profites pour te remettre à niveau en anglais. L'anglais informatique est bien moins difficile que l'anglais conversationnel: déjà t'as pas besoin de le parler, et d'autre part beaucoup de termes sont récurrents. à‡a te ferait une remise à niveau pas cher, à ton rythme, et sans prof sur le dos
#11 Le 14/02/2008, à 07:47
- ptitcois
Re : Probleme en C sous Glade ( valeurs éronées)
ok merci a vous 3 alors je vais (re)apprendre l'anglais, et vérifier si me traduction n'ont pas aucun sens !
Hors ligne