Salut,
J'ai réalisé une interface graphique simple dans la quelle je récupère le nom et le prénom saisis que je mes dans un label . J'ai du modifier mon code afin de savoir d'ou provenait l'erreur, à l'origine je voulais recuperer le nom ,le prénom et dautres info que je devais enrégistrer dans une base de données.J'ai enlevé tout ce qui concerne la base de données. Mais le problème persiste.
Problème: Chaque fois que je clique sur le bouton valider l'interface se ferme et je recoit ce message " Gtk-CRITICAL **: gtk_container_foreach: assertion `GTK_IS_CONTAINER (container)' failed
Erreur de segmentation (core dumped)"

Quelqu'un a t'il une idée? Merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
 
#include <stdlib.h>
#include <gtk/gtk.h>
#include <mysql/mysql.h>
#include <sql.h>
 
void Action(GtkWidget *pWidget, gpointer pData);
 
int main(int argc, char **argv)
{
    GtkWidget *Window;
    GtkWidget *ComboBox,*ComboBoxcanal;
    GtkWidget *HBoxp,*HBoxn,*VBox,*HBoxtitre,*HBoxadresse,*HBoxtel,*HBoxrv,*HBoxhd,*HBoxdate,*HBoxheure,*HBoxdh,*HBoxj,*HBoxm,*HBoxa,*HBoxh,*HBoxmin,
               *HBox1,*HBox2,*HBox3,*HBox4,*HBoxvide,*HBoxcanal,*HBoxbouton;
    GtkWidget *Bouton;
    GtkWidget *Labeltitre,*Labelp,*Labeladresse,*Labeltel,*Labeln,*Labelrv,*Labeldate,*Labelj,*Labelm,*Labela,*Labelheure,*Labelh,
              *Labelmin,*Labelcanal,*Labelc;
    GtkWidget *Entryn,*Entryp,*Entryadresse,*Entrytel,*Entryj,*Entrym,*Entrya,*Entryh,*Entrymin;
    GtkWidget *Label;
 
 
    gtk_init(&argc,&argv);
 
    Window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(Window), "CALLBACK");
    gtk_window_set_default_size(GTK_WINDOW(Window), 500, 400);
    gtk_window_set_position(GTK_WINDOW(Window), GTK_WIN_POS_CENTER);
    g_signal_connect(G_OBJECT(Window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
 
    /* Creation de la GtkBox verticale  */
    VBox = gtk_vbox_new(FALSE, 10);
 
    /* Ajout de la GtkVBox dans la fenetre */
    gtk_container_add(GTK_CONTAINER(Window), VBox);
 
     /* Creation des box horizontaux */
    HBoxtitre = gtk_hbox_new(TRUE, 0);     
    HBoxn = gtk_hbox_new(TRUE, 0);         
    HBoxp = gtk_hbox_new(TRUE, 0);        
    HBoxbouton = gtk_hbox_new(TRUE, 0);
 
    /* Ajout des GtkHBox dans la GtkVBox */
    gtk_box_pack_start(GTK_BOX(VBox), HBoxtitre, FALSE, TRUE, 0);
    gtk_box_pack_start(GTK_BOX(VBox), HBoxn, FALSE, TRUE, 0);
    gtk_box_pack_start(GTK_BOX(VBox), HBoxp, FALSE, TRUE, 0);
    gtk_box_pack_start(GTK_BOX(VBox), HBoxbouton, FALSE, TRUE, 0);
 
     /* Creation du label */
    Labeln=gtk_label_new("Nom :");                              
    Labelp=gtk_label_new("Prenom :");                                                   
    Labeltitre=gtk_label_new("COORDONNEES DU CLIENT");           
    Label = gtk_label_new(NULL);              
 
     /* Creation des GtkEntry */
    Entryn = gtk_entry_new();         
    Entryp = gtk_entry_new();         
 
    /* On ajoute des labels aux box horizontaux */
    gtk_box_pack_start(GTK_BOX(HBoxtitre), Labeltitre, TRUE, TRUE, 0);       
    gtk_box_pack_start(GTK_BOX(HBoxn), Labeln, TRUE, TRUE, 0);               
    gtk_box_pack_start(GTK_BOX(HBoxp), Labelp, TRUE, TRUE, 0); 
 
    gtk_box_pack_start(GTK_BOX(VBox), Label, TRUE, FALSE, 0);
 
    /* On ajoute des zones de saisie aux box horizontaux */
    gtk_box_pack_start(GTK_BOX(HBoxn), Entryn, TRUE, TRUE, 0);
    gtk_box_pack_start(GTK_BOX(HBoxp), Entryp, TRUE, TRUE, 0); 
 
    /* Initialisation du bouton Valider */
     Bouton = gtk_button_new_with_label("Valider"); 
 
    /* Ajout de Bouton dans la GtkHBox */
    gtk_box_pack_start(GTK_BOX(HBoxbouton), Bouton, TRUE, FALSE, 0);  
 
    /* Connexion du signal "clicked" du bouton */
    g_signal_connect(G_OBJECT(Bouton), "clicked", G_CALLBACK(Action), NULL);
 
    //gtk_container_foreach(GTK_CONTAINER(Window),(GtkCallback)Action,""); 
 
 
    gtk_widget_show_all(Window);
 
    gtk_main();
 
    return EXIT_SUCCESS;
}
 
 
void Action(GtkWidget *pWidget, gpointer data)
{
    GtkWidget *Tempn;
    GtkWidget *Tempp;
    GtkWidget *TempLabel;
    GList *pList;
    const gchar *Textnom,*Textprenom;
    FILE *fichier; 
 
 
    /* Recuperation de la liste des elements que contient la GtkVBox */
    pList = gtk_container_get_children(GTK_CONTAINER((GtkWidget*)data));
 
    /* Le nom */
    Tempn = GTK_WIDGET(pList->data);
 
    /* Passage a l element suivant*/
    pList = g_list_next(pList);
 
    /* Le prenom */
    Tempp = GTK_WIDGET(pList->data);
 
    /* Passage a l element suivant*/
    pList = g_list_next(pList);
 
     /* Passage a l element suivant*/
    pList = g_list_next(pList);
 
    TempLabel = GTK_WIDGET(pList->data);
 
    /* Recuperation du texte contenu dans les GtkEntry  */
    Textnom = gtk_entry_get_text(GTK_ENTRY(Tempn));
    //Textprenom = gtk_entry_get_text(GTK_ENTRY(Tempp)); 
 
     /* Modification du texte contenu dans le GtkLabel */
    gtk_label_set_text(GTK_LABEL(TempLabel), Textnom);
 
    /* Liberation de la memoire utilisee par la liste */
    g_list_free(pList);  
}