Bonjour,

Je debute sous GTK+ et je ne comprends pas vraiment l'utilisation de la fonction g_signal_connect.
En effet, j'ai cree un bouton et j'appelle

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
g_signal_connect (G_OBJECT (p_button), "clicked", G_CALLBACK(cb_open), pInput);
ou pInput est un tableau de GtkEntry. En fait j'aimerai charger un fichier texte et mettre chaque valeur dans chaque case de mon tableau.

Dans cb_open j'ai :

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
 
void cb_open (GtkWidget *p_widget, Grid g, 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));
 
    load_file_gtk(file_name,&g,user_data);
    g_free (file_name), file_name = NULL;
  }
  gtk_widget_destroy (p_dialog);
 
  /* Parametre inutilise */
  (void)p_widget;
}
ou load_file_gtk prend le nom du fichier, mon type grille et mon tableau de GtkEntry.

Ou est-ce que je fais une erreur ? Je n'ai pas vraiment compris le dernier parametre de la fonction g_signal_connect et comment les parametres etaient passes au handler cb_open...

Merci pour votre aide !