Bonjour,

J'aimerais récupérer l'état de plusieurs radio_button.
j'ai une structure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
typedef struct
{
   gint etat_radio_aucune;
   gint etat_radio_jour;
   gint etat_radio_semaine;
   gint etat_radio_mois;
   gint etat_radio_annee;
}radio;
Dans mon interface.c, je connecte un des radio button à cette fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
  g_signal_connect (G_OBJECT(radiobutton_aucune), "toggled",
                    G_CALLBACK (on_radiobutton_aucune_toggled),
                    NULL);
Les fonctions G_CALLBACK étant de type de retour void, j'ai donc pensé à créer une autre fonction pour récupérer l'état de mes radio button:
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
 
void on_radiobutton_aucune_toggled(GtkWidget *widget, gpointer user_data)
{
	 recuperation_etat_radio(widget,user_data);
}
 
int recuperation_etat_radio(GtkWidget *widget, gpointer user_data)
{
    radio pt;
 	GtkWidget *radio_aucune = lookup_widget(GTK_WIDGET(widget),"radiobutton_aucune"); 
 	GtkWidget *radio_jour = lookup_widget(GTK_WIDGET(widget),"radiobutton_jour");
 	GtkWidget *radio_semaine = lookup_widget(GTK_WIDGET(widget),"radiobutton_semaine");
 	GtkWidget *radio_mois = lookup_widget(GTK_WIDGET(widget),"radiobutton_mois");
 	GtkWidget *radio_annee = lookup_widget(GTK_WIDGET(widget),"radiobutton_annee");
 
  	gint flag = 0;
 
 	pt.etat_radio_aucune = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio_aucune) );
 	pt.etat_radio_jour = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio_jour) );
 	pt.etat_radio_semaine = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio_semaine) );
 	pt.etat_radio_mois = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio_mois) );
 	pt.etat_radio_annee = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(radio_annee) );
 
	 if ( pt.etat_radio_aucune == TRUE)
 	 	flag = 0; /* aucune */
 
     if ( pt.etat_radio_jour == TRUE)
 	 	flag = 1; /* jour */
 
     if ( pt.etat_radio_semaine == TRUE)
 	 	flag = 2; /* semaine */
 
     if ( pt.etat_radio_mois == TRUE)
 	 	flag = 3; /* mois */
 
     if ( pt.etat_radio_annee == TRUE)
 	 	flag = 4; /* annee */
 
     return flag;
}
Dans une autre procédure, je récupère le flag comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
gint flag = recuperation_etat_radio(widget,user_data);
Mais ça passe pas quand j'essaye de modifier des labels en fonction de la valeur de flag. Je récupère aussi la valeur d'un spinbutton, mais ça marche pas

gint freq = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin_freq));