Bonjour,

Je fais appel a votre aide.

J'utilise Glade3;
J'ai défini 3 boutons dans une fenêtre.
-- 3 togglebuttonDo0 à togglebuttonDo3
Les signaux sont définis dans glade:
-- on_togglebuttonDo0_toggled à on_togglebuttonDo3_toggled
Mon programme possède les 3 routines suivantes:

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
 
void* on_togglebuttonDo0_toggled(GtkWidget* ptrbutton,gpointer data)
{
	printf("le bouton 0 a fonctionné.\n");
	return 0;
}
 
void* on_togglebuttonDo1_toggled(GtkWidget* ptrbutton,gpointer data)
{
	gdk_beep ();
	printf("le bouton 1 a fonctionné.\n");
	return 0;
}
 
void* on_togglebuttonDo2_toggled(GtkWidget* ptrBouton,gpointer data)
{
	GtkWidget *ptrBouton0=NULL;
 
	printf("le bouton 2 a fonctionné.\n");
	/* L'appuie du bouton 2 doit simuler l'appuie du bouton 0. */
printf("-->1\n");
	ptrBouton0= GTK_WIDGET(gtk_builder_get_object(p_builder,"togglebuttonDo0"));
printf("-->2\n");
	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ptrBouton0),0);
	return 0;
}
Résultat à l'exécution en cliquant dans l'ordre:
le bouton 0 a fonctionné.
le bouton 1 a fonctionné.
le bouton 2 a fonctionné.
-->1
Erreur de segmentation

Il me semble que l'erreur est dans l'utilisation de p_buider.
Pourtant il a bien fonctionné pour l'ouverture de ma fenêtre:

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
 
	GtkBuilder  *  p_builder   = NULL;
 
	int chargeInterface(void)
	{
		GError      *  p_err       = NULL;
		GtkWidget *mainwin;
 
		/* Creation d'un nouveau GtkBuilder */
		p_builder = gtk_builder_new ();
		if (p_builder == NULL) return EXIT_FAILURE;
 
		/* Chargement du XML dans p_builder */
		gtk_builder_add_from_file (p_builder, "interface.xml", & p_err);
		...
 
		gtk_builder_connect_signals ( p_builder, NULL );
		mainwin= GTK_WIDGET(gtk_builder_get_object(p_builder,"window1"));
 
		gtk_widget_show_all ( mainwin );
		...
A moins qu'il sagit d'une histoire de Thread n'héritant pas de p_buider ou parce que mon bouton est contenu dans le Window1, je ne vois pas de raison au non fonctionnement.
Ne me dite pas que les routines de GTK me sont interdites dans une routine de callback !

Une idée ?