Salut,
Je n'ai pas le début de la moindre explication sur une erreur qui survient sur un file_chooser_dialog, je comprend à peu près ce que ma console m'affiche mais je ne sais pas comment y remédier.
Je dit bien exécution, puisque la compilation ne m'affiche pas d'erreur.
L'erreur survient que je clique sur un bouton qui a pour effet de supprimer la boite de dialogue, que ce soit les boutons open, cancel ou la croix rouge.
voila ce que ma console m'affiche :
(moulinette_gtk_v1.exe:4888): Gtk-WARNING **: file_system_win32=026BAF20 still h
as handle=0269DC48 at finalization which is NOT CANCELLED!
(moulinette_gtk_v1.exe:4888): Gtk-WARNING **: file_system_win32=026BAF20 still h
as handle=0269DB58 at finalization which is NOT CANCELLED!
Process returned -1073741819 (0xC0000005) execution time : 9.631 s
Press any key to continue.
voila le code de mon gtk_file_chooser_dialog
j'ai mis le code du if en commentaire juste pour les tests, de toute façon lors des test j'appuie sur le bouton cancel.
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 void cb_executer(GtkWidget *pWidget, gpointer user_data) { GtkWidget *p_dialog = NULL; p_dialog = gtk_file_chooser_dialog_new ("Ouvrir un fichier", NULL, GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); if (gtk_dialog_run (GTK_DIALOG (p_dialog)) == GTK_RESPONSE_ACCEPT) { /*gchar *file_name = NULL; file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (p_dialog)); open_file (file_name); g_free (file_name), file_name = NULL;*/ } gtk_widget_destroy (p_dialog); /* Parametre inutilise */ (void)pWidget; (void)user_data; }
Voilà la fonction ou se trouve le bouton qui fait appel à la boite de dialogue :
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 void menu_newAccueil(GtkWidget *pBox) { GtkWidget *pBoutonExecuter = NULL; GtkWidget *pBoutonModeSilencieux = NULL; GtkWidget *pMainTable = NULL; pMainTable = gtk_table_new(4, 3, TRUE); gtk_box_pack_start(GTK_BOX(pBox), pMainTable, TRUE, TRUE, 0); pBoutonExecuter = gtk_button_new_with_label("Executer"); pBoutonModeSilencieux = gtk_button_new_with_label("Executer (mode silencieux)"); g_signal_connect (G_OBJECT (pBoutonExecuter), "clicked", G_CALLBACK (cb_executer), NULL); //g_signal_connect(G_OBJECT(pBoutonModeSilencieux), "clicked", G_CALLBACK(cb_executer), NULL); gtk_table_attach_defaults(GTK_TABLE(pMainTable), pBoutonExecuter, 1, 2, 1, 2); gtk_table_attach_defaults(GTK_TABLE(pMainTable), pBoutonModeSilencieux, 1, 2, 2, 3);
Voilà, je comprend rien, la boite de dialogue est un copié collé d'un morceau d'un autre programme qui marche très bien
Merci d'avance à tous ceux qui prendront le temps de me lire.
Partager