IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GTK+ avec C & C++ Discussion :

Problème avec mon code


Sujet :

GTK+ avec C & C++

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 23
    Par défaut Problème avec mon code
    Bonjour,

    voici mon code qui doit lancer une boite de dialog ki permet de sélectionner un dossier et d'afficher le path du dossier sélectionné.

    le problème c'est qu'il plante .
    quelqun pourrai m'aider à le debugger.

    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
     
    #include <stdlib.h>
    #include <gtk/gtk.h>
     
    void OnButton(GtkWidget *pWidget, gpointer data);
     
    int main(int argc,char **argv)
    {
        GtkWidget *pWindow;
        GtkWidget *pButton;
     
        gtk_init(&argc,&argv);
     
        pWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(pWindow), "GtkFileSelection");
        gtk_window_set_default_size(GTK_WINDOW(pWindow), 320, 200);
     
        pButton=gtk_button_new_with_mnemonic("_Explorer...");
        gtk_container_add(GTK_CONTAINER(pWindow), pButton);
     
        g_signal_connect(G_OBJECT(pWindow), "destroy", G_CALLBACK(gtk_main_quit), NULL);
        g_signal_connect(G_OBJECT(pButton), "clicked", G_CALLBACK(OnButton), NULL);
     
        gtk_widget_show_all(pWindow);
        gtk_main();
        return EXIT_SUCCESS;
    }
     
    void OnButton(GtkWidget *pWidget, gpointer data)
    {
        GtkWidget *pFileSelection;
        GtkWidget *pDialog;
        GtkWidget *pParent;
        gchar *sChemin;
     
        pParent = GTK_WIDGET(data);
     
        /* Creation de la fenetre de selection */
        pFileSelection = gtk_file_chooser_dialog_new("Ouvrir...",
    	GTK_WINDOW(pParent),
    	GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
    	GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
    	GTK_STOCK_OPEN, GTK_RESPONSE_OK,
    	NULL);
        /* On limite les actions a cette fenetre */
        gtk_window_set_modal(GTK_WINDOW(pFileSelection), TRUE);
     
        /* Affichage fenetre */
        switch(gtk_dialog_run(GTK_DIALOG(pFileSelection)))
        {
            case GTK_RESPONSE_OK:
                /* Recuperation du chemin */
                sChemin = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSelection));
                pDialog = gtk_message_dialog_new(GTK_WINDOW(pFileSelection),
                    GTK_DIALOG_MODAL,
                    GTK_MESSAGE_INFO,
                    GTK_BUTTONS_OK,
                    "Chemin du fichier :\n%s", sChemin);
                gtk_dialog_run(GTK_DIALOG(pDialog));
                gtk_widget_destroy(pDialog);
    	    g_free(sChemin);
                break;
            default:
                break;
        }
        gtk_widget_destroy(pFileSelection);
    }

  2. #2
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 13
    Par défaut
    Je dirai :

    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
    void OnButton(GtkWidget *pWidget, gpointer data);
    
    int main(int argc,char **argv)
    {
    //...
        g_signal_connect(G_OBJECT(pButton), "clicked", G_CALLBACK(OnButton), NULL);
    //...
    }
    
    void OnButton(GtkWidget *pWidget, gpointer data)
    {
        GtkWidget *pFileSelection;
        GtkWidget *pDialog;
        GtkWidget *pParent;
        gchar *sChemin;
    
        pParent = GTK_WIDGET(data);
    
    }
    Dans ton handler OnButton tu t'attends à recevoir un paramètre sur gpointer data, or tu cables le handler en lui passant un pointeur NULL...

Discussions similaires

  1. [JDOM] problème avec mon code
    Par aroua dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 30/04/2008, 13h36
  2. problème avec mon code pour accès au serveur ftp
    Par mimi51340 dans le forum Général Java
    Réponses: 1
    Dernier message: 03/03/2008, 23h24
  3. Problème avec mon code - un aperçu
    Par nsimon70 dans le forum Flash
    Réponses: 1
    Dernier message: 14/02/2008, 12h47
  4. [MySQL] problème avec mon code (envoi données) ?
    Par cuisto44000 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 20/12/2007, 09h45
  5. probléme avec mon code JAVA et MYSQL
    Par ulysse031 dans le forum JDBC
    Réponses: 5
    Dernier message: 10/05/2007, 00h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo