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 :

passage de parametre


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Par défaut passage de parametre
    Bonjour,

    Je suis en train de développer une GUI avec glade.

    Dans mon code C, j'ai associé à un bouton la fonction cb_open. Cette fonction doit ouvrir un gtk-assitant (défini dans glade). Comment le passer en paramètre de la fonction cb_open?

    voici mon fichier main.c :

    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
    #include <stdlib.h>
    #include <gtk/gtk.h>
    #include "Callbacks.h"
     
     
     
    int main (int argc, char ** argv)
    {
       GtkBuilder  *  p_builder   = NULL;
       GError      *  p_err       = NULL;
     
     
       /* Initialisation de GTK+ */
       gtk_init (& argc, & argv);
     
     
       /* Creation d'un nouveau GtkBuilder */
       p_builder = gtk_builder_new ();
     
       if (p_builder != NULL)
       {
          /* Chargement du XML dans p_builder */
          gtk_builder_add_from_file (p_builder, "GUI.glade", & p_err);
     
          if (p_err == NULL)
          {
             /* 1.- Recuparation d'un pointeur sur la fenetre. */
             GtkWidget * p_win = (GtkWidget *) gtk_builder_get_object (
                p_builder, "window1"
             );
             gtk_window_set_default_size(GTK_WINDOW(p_win), 1024, 768);
             g_signal_connect(G_OBJECT(p_win), "destroy", G_CALLBACK(cb_quit), NULL);
     
             /* 2.- */
             /* Fenetres annexe*/
             GtkWidget * p_NP_assistant = (GtkWidget *) gtk_builder_get_object (
                p_builder, "New_project_assistant"
             );
             gtk_window_set_default_size(GTK_WINDOW(p_NP_assistant), 300, 200);
             g_signal_connect(G_OBJECT(p_NP_assistant), "close", G_CALLBACK(cb_quit_NP_assistant), NULL);
             g_signal_connect(G_OBJECT(p_NP_assistant), "cancel", G_CALLBACK(cb_quit_NP_assistant), NULL);
     
             /* 3.- */
             /* Signaux des bouttons*/
             g_signal_connect (
                gtk_builder_get_object (p_builder, "bouton_Nouveau"),
                "clicked", G_CALLBACK (cb_open), NULL
             );        
     
             gtk_widget_show_all (p_win);
             gtk_main ();
          }
          else
          {
             /* Affichage du message d'erreur de GTK+ */
             g_error ("%s", p_err->message);
             g_error_free (p_err);
          }
       }
     
     
       return EXIT_SUCCESS;
    }
    mon fichier Callbacks.c :

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <gtk/gtk.h>
    #include "Callbacks.h"
     
    void cb_open (GtkWidget * p_wid, gpointer p_data, GtkWidget * p_NP_assistant)
    {
    printf("toto\r\n");
    gtk_widget_show_all (p_NP_assistant);
    }
     
    void cb_quit (GtkWidget * p_wid, gpointer p_data)
    {
       gtk_main_quit ();
    }
     
    void cb_quit_NP_assistant (GtkWidget * p_wid, gpointer p_data)
    {
       gtk_main_quit ();
    }
    Si vous pouviez me donner un/des exemples de passage de paramètres SVP...

    Merci,

    Alex

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Ton code est pas trop mal. Cependant tu fais une erreur classique. Le prototype du callback associé au signal "clicked" est le suivant. Tu ne respectes pas ce prototype.

    Ensuite dans la fonction g_signal_connect(); il y a la fameuse donnée "data". Remplace-la par le pointeur "p_NP_assistant".

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Par défaut
    Merci pour ta réponse...

    J'ai regardé pour l'utilisation du prototype de "clicked", mais je ne voit pas comment l'implémenter ...

    En ce qui concerne le passage de paramètre, j'ai fait la substitution et ça fonctionne parfaitement.

    Juste pour creuser un peu: Comment je fais pour passer plusieurs paramètres?
    J'ai essayé de les rajouter en les séparant par des virgules, mais mon compilo me dit que g_signal_connect() n'accepte que 4 arguments...

    J'en profite pour te demander encore un renseignement:

    Maintenant que j'arrive à ouvrir mon pop-up, j'aimerais pouvoir le fermer si l'utilisateur clique sur son bouton annuler (ou sa fonction fermeture). Le problème c'est que la fonction gtk_quit() n'existe pas....

    Ou puis-je trouver un listing des fonctions de gtk?

    Merci encore pour ton aide,

    Alex

  4. #4
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Pour la documentation c'est par ici.

    gtk-quit(); n'existe pas, c'est vrai. Son pendant est gtk_main_quit();. Maintenant cette fonction va arrêter la boucle principale de GTK+. En d'autres termes ca va provoquer l'arrêt de ton programme. Ce que tu ne veux pas.
    Pour fermer une fenêtre tu as deux possibilités :
    1. gtk_widget_hide();
    2. gtk_widget_destroy();

    La première possibilité cache la fenêtre sans la détruire. Ca peut être intéeressant si cette fenêtre est souvent appelée.
    La seconde détruit la fenêtre et tout ce qu'elle contient.

    Pour passer plusieurs arguments, la encore tu as deux possiblités:
    1. Créer une structure contenant tous les éléments.
    2. Utiliser le pointeur "data" hérité de GObject.

    Je te conseille vivement la première option. Plus lisible.

    Comment implémenter le callback?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void cb_open (GtkButton *button, GtkWidget * p_NP_assistant)
    {
    printf("toto\r\n");
    gtk_widget_show_all (p_NP_assistant);
    }
    Et la connexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /* Signaux des bouttons*/
             g_signal_connect (
                gtk_builder_get_object (p_builder, "bouton_Nouveau"),
                "clicked", G_CALLBACK (cb_open), p_NP_assistant);
    Une remarque:
    Tu peux assigner directement ton callback dans glade.

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Par défaut
    super !

    Merci pour toutes ces infos...

  6. #6
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Par défaut
    salut !

    j'ai essayé ce we d'implémenter la fermeture du popup "assistant".
    (Il est ouvert lors de la création d'un nouveau projet)

    Ça marche sans problème. Cependant, Lorsque j'utilise gtk_widget_destroy(), impossible de le réouvrir (si je veux créer un nouveau projet par exemple).

    Si j'ai bien analysé la chose, c'est du au fait que je déclare mon popup dans le main.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
             GtkWidget * p_NP_assistant = (GtkWidget *) gtk_builder_get_object (
                p_builder, "New_project_assistant"
             );
             gtk_window_set_default_size(GTK_WINDOW(p_NP_assistant), 300, 200);
             g_signal_connect(G_OBJECT(p_NP_assistant), "close", G_CALLBACK(cb_quit_NP_assistant), p_NP_assistant);
             g_signal_connect(G_OBJECT(p_NP_assistant), "cancel", G_CALLBACK(cb_quit_NP_assistant), p_NP_assistant);
    quel est le meilleur choix :

    - créer la fenêtre "assistant" dans le main et utiliser gtk_widget_hide() pour la fermer
    ou
    - la recréer à chaque fois que le bouton "new project" est actionné et dans ce cas utiliser gtk_widget_destroy()


    Alex

  7. #7
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Si tu penses que cette fenêtre doit souvent être affichée, alors tu la caches. Dans l'autre cas tu la détruis.

    Généralement on crée la fenêtre dans le callback appelé. Tout va dépendre de ton choix de destruction ou pas..

  8. #8
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Par défaut
    j'ai essayé de créer la fenêtre lors du callback.

    Voila ce que ça donne :

    main.c

    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
    #include <stdlib.h>
    #include <gtk/gtk.h>
    #include "Callbacks.h"
     
    int main (int argc, char ** argv)
    {
       GtkBuilder  *  p_builder   = NULL;
       GError      *  p_err       = NULL;
     
     
       /* Initialisation de GTK+ */
       gtk_init (& argc, & argv);
     
     
       /* Creation d'un nouveau GtkBuilder */
       p_builder = gtk_builder_new ();
     
       if (p_builder != NULL)
       {
          /* Chargement du XML dans p_builder */
          gtk_builder_add_from_file (p_builder, "toto.glade", & p_err);
     
          if (p_err == NULL)
          {
             /* 1.- Recuparation d'un pointeur sur la fenetre. */
             GtkWidget * p_win = (GtkWidget *) gtk_builder_get_object (
                p_builder, "window1"
             );
             gtk_window_set_default_size(GTK_WINDOW(p_win), 1024, 768);
             g_signal_connect(G_OBJECT(p_win), "destroy", G_CALLBACK(cb_quit), NULL);
     
             /* 3.- */
             /* Signaux du menu Projet*/
             g_signal_connect (
                gtk_builder_get_object (p_builder, "menuitem1_Nouveau"),
                "activate", G_CALLBACK (cb_new_project), p_builder
             );
     
     ....
             /* Signaux de la toolbar*/
             g_signal_connect (
                gtk_builder_get_object (p_builder, "toolbutton_Nouveau"),
                "clicked", G_CALLBACK (cb_new_project),  p_builder
             );
     
     ....         
     
             gtk_widget_show_all (p_win);
             gtk_main ();
          }
          else
          {
             /* Affichage du message d'erreur de GTK+ */
             g_error ("%s", p_err->message);
             g_error_free (p_err);
          }
       }
     
       return EXIT_SUCCESS;
    }
    callbacks.c

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <gtk/gtk.h>
    #include "Callbacks.h"
     
    void cb_new_project (GtkWidget * p_wid, GtkBuilder * p_builder)
    {
         GtkWidget * p_NP_assistant = (GtkWidget *) gtk_builder_get_object (p_builder, "New_project_assistant");
     
         gtk_window_set_default_size(GTK_WINDOW(p_NP_assistant), 300, 200);
         g_signal_connect(G_OBJECT(p_NP_assistant), "close", G_CALLBACK(cb_quit_NP_assistant), p_NP_assistant);
         g_signal_connect(G_OBJECT(p_NP_assistant), "cancel", G_CALLBACK(cb_quit_NP_assistant), p_NP_assistant);
     
         //gtk_assistant_set_page_complete(p_NP_assistant, "vbox3", TRUE);
     
     
    gtk_widget_show_all (p_NP_assistant);
    }
     
    ...
     
    void cb_quit (GtkWidget * p_wid, gpointer p_data)
    {
       gtk_main_quit ();
    }
     
    void cb_quit_NP_assistant (GtkWidget * p_wid, GtkWidget * p_NP_assistant)
    {
       gtk_widget_destroy(p_NP_assistant);
    }
    Quand j'exécute le programme, et que je clique sur le bouton "New Project", l'assistant s'ouvre bien.
    Par contre, si je le referme et que je relique sur le bouton, j'obtiens une erreur windows...

    j'ai surement fait une erreur...

    Ensuite, mon assistant a son bouton "suivant" qui est grisé. En cherchant, j'ai vu qu'il fallait déclaré la page en cours comme "complete" pour que le bouton devienne actif.

    J'ai donc rajouté la fonction gtk_assistant_set_page_complete().

    Mais si j'ajoute, la ligne de code suivante, alors j'ai des warnings lors de la compilation et ça ne change rien...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_assistant_set_page_complete(p_NP_assistant, "vbox3", TRUE);

  9. #9
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par alexglvr Voir le message
    ... J'ai donc rajouté la fonction gtk_assistant_set_page_complete().

    Mais si j'ajoute, la ligne de code suivante, alors j'ai des warnings lors de la compilation et ça ne change rien...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_assistant_set_page_complete(p_NP_assistant, "vbox3", TRUE);
    Tu ne nous as pas donné les warnings mais je suppose qu'ils viennent du fait que tu n'as pas demander l'héritage du GtkAssistant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_assistant_set_page_complete(GTK_ASSISTANT(p_NP_assistant), "vbox3", TRUE);
    Ceci étant je ne comprends pas bien ton programme. p_builder contient 2 fenêtres (window1 et New_project_assistant)?

  10. #10
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Par défaut
    en fait, j'ai fait mon projet glade qui contient la fenêtre principale window1 et mon "Assistant".

    J'aurais pu aussi faire deux projets glade séparés... C'est mieux?

    Du coup p_builder contient effectivement les deux fenêtres...

    Lorsque je créer mon assistant dans le callback d'un des boutons de window1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void cb_new_project (GtkWidget * p_wid, GtkBuilder * p_builder)
    {
         GtkWidget * p_NP_assistant = (GtkWidget *) gtk_builder_get_object (p_builder, "New_project_assistant");
                
         gtk_window_set_default_size(GTK_WINDOW(p_NP_assistant), 300, 200);
         g_signal_connect(G_OBJECT(p_NP_assistant), "close", G_CALLBACK(cb_quit_NP_assistant), p_NP_assistant);
         g_signal_connect(G_OBJECT(p_NP_assistant), "cancel", G_CALLBACK(cb_quit_NP_assistant), p_NP_assistant);
         
         gtk_assistant_set_page_complete(GTK_ASSISTANT(p_NP_assistant), 0, TRUE);
    
         
         gtk_widget_show_all (p_NP_assistant);
    }
    avec la modif en bold, je n'ai plus de warning et lors de l'exécution et du clique sur le bouton, mon "assistant" s'ouvre correctement.

    Cependant, le boutons "suivant" reste grisé... aussi, la fonction gtk_assistant_set_page_complete() n'a pas eu l'effet souhaité.

    J'ai aussi une autre erreur: lorsque je ferme l'assistant (en cliquant sur annuler ou x), et que je souhaite la réouvrir, j'obtiens une erreur windows...

  11. #11
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Par défaut
    j'ai réussi à activer le bouton suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void cb_new_project (GtkWidget * p_wid, GtkBuilder * p_builder)
    {
         GtkWidget * p_NP_assistant = (GtkWidget *) gtk_builder_get_object (p_builder, "New_project_assistant");
     
         gtk_window_set_default_size(GTK_WINDOW(p_NP_assistant), 300, 200);
         g_signal_connect(G_OBJECT(p_NP_assistant), "close", G_CALLBACK(cb_quit_NP_assistant), p_NP_assistant);
         g_signal_connect(G_OBJECT(p_NP_assistant), "cancel", G_CALLBACK(cb_quit_NP_assistant), p_NP_assistant);
     
         gtk_assistant_set_page_complete(GTK_ASSISTANT(p_NP_assistant), (GtkWidget *) gtk_builder_get_object (p_builder, "vbox3"), TRUE);
         gtk_assistant_set_page_complete(GTK_ASSISTANT(p_NP_assistant), (GtkWidget *) gtk_builder_get_object (p_builder, "vbox4"), TRUE);
         gtk_assistant_set_page_complete(GTK_ASSISTANT(p_NP_assistant), (GtkWidget *) gtk_builder_get_object (p_builder, "vbox5"), TRUE);
     
         gtk_widget_show_all (p_NP_assistant);
    }
    je ne sais pas si c'est très propre, mais bon...

    Sinon, je ne vois toujours pas pourquoi je n'arrive pas à réouvrir mon assistant après l'avoir fermé...

  12. #12
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    teste un peu tes différents pointeurs. p_builder est-il toujours valide par exemple?

  13. #13
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Par défaut
    j'ai fait un affichage de la valeur des pointeurs p_builder et p_NP_assistant.

    Ils gardent la même valeur tout au long du programme (même après le gtk_widget_destroy(p_NP_assistant);)...

    Si, après la fermeture du "assistant" je rappelle le callback d'ouverture mais sans la dernière ligne gtk_widget_show_all (p_NP_assistant);, je n'ai plus de plantage (mais bien sur la fenêtre ne se ré-affiche pas). ...

    J'ai cependant, dans la fenêtre DOS associée au programme, plusieurs warning/erreurs:

    Gtk-CRITICAL **: gtk_assistant_set_page_complete: assertion 'child!=NULL' failed
    Gtk-CRITICAL **: gtk_assistant_set_page_complete: assertion 'child!=NULL' failed
    Gtk-CRITICAL **: gtk_assistant_set_page_complete: assertion 'child!=NULL' failed


    Si je rappelle aussi la derniere ligne, le nombre d'erreur dasn la fenetre DOS augmente avant le plantage windows:

    Gtk-CRITICAL **: gtk_assistant_set_page_complete: assertion 'child!=NULL' failed
    Gtk-CRITICAL **: gtk_assistant_set_page_complete: assertion 'child!=NULL' failed
    Gtk-CRITICAL **: gtk_assistant_set_page_complete: assertion 'child!=NULL' failed
    Gtk-CRITICAL **: gtk_widget_size_request: assertion 'GTK_IS_WIDGET(widget)' failed
    Gtk-CRITICAL **: gtk_widget_set_size_request: assertion 'GTK_IS_WIDGET(widget)' failed
    Gtk-CRITICAL **: gtk_widget_size_request: assertion 'GTK_IS_WIDGET(widget)' failed
    Gtk-CRITICAL **: gtk_widget_size_request: assertion 'GTK_IS_WIDGET(widget)' failed
    Gtk-CRITICAL **: gtk_object_get_qdata: assertion 'G_IS_OBJECT(object)' failed
    Gtk-CRITICAL **: gtk_object_get_qdata: assertion 'G_IS_OBJECT(object)' failed

  14. #14
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par alexglvr Voir le message
    j'ai fait un affichage de la valeur des pointeurs p_builder et p_NP_assistant.

    Ils gardent la même valeur tout au long du programme (même après le gtk_widget_destroy(p_NP_assistant);)...
    Le problème est bien là.

    p_NP_assistant pointe toujours sur un espace mémoire qui a été libéré le premier coup par gtk_widget_destroy();.

    C'est pour ca que j'ai "tiqué" lorsque j'ai vu que tu avais 2 interfaces dans le même fichier glade.
    Pour ma part je crée autant de fichiers glade que d'interfaces. A chaque fois que je veux en ouvrir une, je charge le fichier nécessaire. Dans ton callback il faudrait initialiser un GtkBuilder en fonction de ton interface.

  15. #15
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Par défaut
    j'ai fait la modif et ça marche niquel...

    Merci encore pour ton aide!!!

  16. #16
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    De rien. Au passage pense à passer ton post en "Résolu".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DOS passage de parametre à un .bat
    Par malbaladejo dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 26/11/2014, 15h44
  2. [langage] Passage de parametre lors de l execution
    Par WetzlarMan dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2004, 13h28
  3. Probleme de passage de parametre a un TQuery
    Par gve21 dans le forum C++Builder
    Réponses: 7
    Dernier message: 15/01/2004, 15h49
  4. Passage de parametre calculé
    Par soazig dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 06/06/2003, 16h25
  5. Passage de parametre a une anim Flash 5
    Par debug dans le forum Intégration
    Réponses: 4
    Dernier message: 03/06/2002, 17h59

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