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 :

combobox avec gtk


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut combobox avec gtk
    bonjour,

    voila je ne comprend pas bien comment glade marche.
    J'ai recopier une procédure qui marche avec GTK et quand c'est moi qui construit ma fenêtre graphique par contre quand c'est avec glade c'est un peu différent il fait tout dans des fonctions et je n'arrive pas à voir comment il fait le lien entre imaginons un entry graphique et un entry que je vais utiliser pour programmer.
    en fait voila mon code:

    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
     
    void
    on_comboboxentry3_changed(GtkComboBox *combobox, gpointer user_data)
    {
     
     
    GList *plist = NULL;
    gint i=0;	
    /*permet d'ajouter une chaîne à la liste*/
       	for(i=0; i<10; i++)
    	plist = g_list_append(plist, g_strdup_printf("chaine %d", i));
     
     
     /*met la liste dans la combo box*/
    	gtk_combo_set_popdown_strings( GTK_COMBO(combobox), plist) ;
     
    }
    je sais que comboboxentry3 c'est le nom donné sous glade donc en graphique et je suppose que combobox mis en arguments dans la fonction est celle qu'il déclare pour la programmation donc ca devrait être bon, mais ca ne marche pas. Faut-il que je déclare autre chose à l'extérieur de ma fonction
    enfin je ne vois pas où est mon erreur si quelqu'un peut m'aider ca devient urgent que je comprenne glade.

    merci
    pepsister

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par pepsister
    J'ai recopier une procédure qui marche avec GTK et quand c'est moi qui construit ma fenêtre graphique par contre quand c'est avec glade c'est un peu différent il fait tout dans des fonctions et je n'arrive pas à voir comment il fait le lien entre imaginons un entry graphique et un entry que je vais utiliser pour programmer.
    Il n'y a pas spécialement de liaison à proprement parler. Quand tu disposes tes widgets graphiquement sous Glade, il créé un fichier XML qui contient toutes les infos de mises en place et propriétés des widgets. Lorsque du fait une génération du code, il transpose les données du XML en C donc il n'y a aucune liaison. Il parait que la version change du tout au tout mais je l'ai pas testé, d'ailleurs je n'utilise que très très peu Glade (des fois c'est juste à titre expérimental)


    Citation Envoyé par pepsister
    je sais que comboboxentry3 c'est le nom donné sous glade donc en graphique et je suppose que combobox mis en arguments dans la fonction est celle qu'il déclare pour la programmation donc ca devrait être bon, mais ca ne marche pas. Faut-il que je déclare autre chose à l'extérieur de ma fonction, enfin je ne vois pas où est mon erreur si quelqu'un peut m'aider ca devient urgent que je comprenne glade.
    En fait ceci n'est rien d'autre qu'un callback, comme tu les faits toi même en code. Le nom comboboxentry3 n'est pas seulement le nom donné sous Glade mais c'est lnom qu'il utilise pour déclarer, initialiser et créer le widget. La fonction étant un callback, le premier argument de cette fonction est donc le widget qui récupère l'événement, cet argument est donc passé automatiquement par GTK+, comme d'habitude quoi !

    Pour pouvoir mieux t'aider, il faudrait que je vois ton code (pas celui de Glade) !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    ce que je t'ai envoyé c'est moi qui l'est programmer. En fait glade m'a mis automatiquement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    void
    on_comboboxentry3_changed(GtkComboBox *combobox, gpointer user_data)
    {
    et moi j'ai écris le reste comme en gtk mais faut-il que je déclare autre chose avant le void?
    ce n'est pas glade qui l'a programmé.
    Sinon je n'utilise pas la nouvelle version de glade mais la version 2.6.
    en fait si j'ai bien compris combobxentry3 c'est le nom de la combo en interface graphique et combobox qui passe en argument c'est ce qui récupère l'intérieur de la combo? c'est ca.

    pepsister

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par pepsister
    ce que je t'ai envoyé c'est moi qui l'est programmer. En fait glade m'a mis automatiquement :

    void
    on_comboboxentry3_changed(GtkComboBox *combobox, gpointer user_data)
    {

    et moi j'ai écris le reste comme en gtk
    Ouais normal ca

    Citation Envoyé par pepsister
    mais faut-il que je déclare autre chose avant le void?
    ce n'est pas glade qui l'a programmé.
    Bin tu as juste à déclarer ce que tu utilises dans la fonction (mieux vaut le déclarer dans la fonction d'ailleurs), comme d'habitude quoi mais les widgets que tu disposes graphiquement c'est Glade si s'occupe de leur déclaration et création comme tu as pû t'en douter

    Citation Envoyé par pepsister
    en fait si j'ai bien compris combobxentry3 c'est le nom de la combo en interface graphique
    Oui

    Citation Envoyé par pepsister
    et combobox qui passe en argument c'est ce qui récupère l'intérieur de la combo? c'est ca.
    Nan, comme je te l'ai dit plus haut, cet argument c'est LE GtkComboBox qui récupère l'événement donc ici combobxentry3 ce qui te permet de l'utiliser directement depuis cet argument dans ton callback, c'est la même chose que sans Glade, ca ne reste que du GTK+ rien de plus et rien de moins !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    j'ai bien compris que ca marche comme gtk et ce que vous m'avez dit. J'ai fais tout comme sous gtk.La fonction que j'ai à faire a déjà été faite pour une autre fenêtre où c'est moi qui avait programmer la fenêtre et ca marche alors pourquoi avec glade ca marche pas c'est ca que je comprend pas il doit bien y avoir des trucs qui changent mis à part les noms des variables.
    Je ne comprend vraiment pas.Je suis vraiment bloquée

  6. #6
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par pepsister
    j'ai bien compris que ca marche comme gtk et ce que vous m'avez dit. J'ai fais tout comme sous gtk.La fonction que j'ai à faire a déjà été faite pour une autre fenêtre où c'est moi qui avait programmer la fenêtre et ca marche alors pourquoi avec glade ca marche pas c'est ca que je comprend pas il doit bien y avoir des trucs qui changent mis à part les noms des variables.
    Je ne comprend vraiment pas.Je suis vraiment bloquée
    Hé bien passe le code complet de ton programme, si c'est trop gros fait un zip et met le en pièce jointe à ton futur post !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

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

Discussions similaires

  1. PB de chargement de combobox avec une requete
    Par bubu1905 dans le forum Bases de données
    Réponses: 9
    Dernier message: 23/03/2005, 16h14
  2. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29
  3. Réponses: 2
    Dernier message: 26/07/2004, 13h34
  4. [GTK]installer Dev-C++ avec gtk 1.2 ...
    Par vbcasimir dans le forum Dev-C++
    Réponses: 2
    Dernier message: 02/02/2004, 13h34

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