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++

  1. #41
    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 dev C++ en francais et je trouve pas où c'est ce que tu m'as dit. Ce que je comprend pas , quand il y a une erreur il m'affiche une fenêtre console avec mes erreurs est ce que ca a un rapport?
    Lance directement ton programme depuis la console DOS, c'est mieux ainsi, au moins la fenêtre reste ouverte, même après la fin du programme et tu pourras alors tester ce que tu veux
    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 !

  2. #42
    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
    oki mais comment je fais pour l'exécuter en DOS

  3. #43
    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
    oki mais comment je fais pour l'exécuter en DOS


    Il faut tout d'abord lancer tonn Shell: Menu démarrer/Exécuter et tu tapes cmd.exe.

    Ensuite tu vas dans le dossier où se situe ton exécutable puis tu tapes sont nom avec son extension tout bêtement !
    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 !

  4. #44
    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
    je n'y arrive pas il me mets tout le temps que mon fichier est introuvable
    j'ai mis c:\DocumentsandSettings\pepita\Projets\projet2
    et il me dit qu'il ne reconnait pas le chemin

  5. #45
    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
    je n'y arrive pas il me mets tout le temps que mon fichier est introuvable
    j'ai mis c:\DocumentsandSettings\pepita\Projets\projet2
    et il me dit qu'il ne reconnait pas le chemin
    Attention aux espace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\Documents and Settings\pepita\Projets\projet2
    Mais normalement il ne prend pas directement en compte les espaces, je crois qu'il faut mettre entre guillemets mais le mieux est encore que tu entres dans les dossiers un par un histoire de pas trop t'embêter avec ca !
    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 !

  6. #46
    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
    le deuxième souci c'est que j'ai essayé de changer mes combobxentry en combobox classique comme tu m'as dit de le faire,
    j'ai bien mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    text = gtk_combo_box_get_active_text (combobox);
    au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    text=gtk_entry_get_text(GTK_ENTRY (GTK_BIN (combobox)->child));
    mais quand je compile il m'affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [Warning] assignment makes pointer from integer without a cast
    text est défini comme xonst gchar *text

  7. #47
    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
    Puis-je voir le code complet au moins de la fonction ? Quelle version de GTK+ ?
    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 !

  8. #48
    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
    quoique je fasse il me mets qu'il ne connait pas le chemin
    quand je fais C: ca passe mais après Documents and Settings ca ne passe pas
    ilo n'y a pas d'autres moyens de voir mon printf pour savoir qu'elle valeur prend value

  9. #49
    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
    Cherche dans les préférences de ton projet sur Dev-cpp, ca y est c'est sûr mais faut chercher c'est tout ou passe sur Code::Blocks car de toutes manières Dev-cpp n'est plus développé et encore moins maintenu !

    Mais cette partie des réglages du type de ton projet y est c'est plus qu'une certitude !

    Citation Envoyé par pepsister
    quoique je fasse il me mets qu'il ne connait pas le chemin
    quand je fais C: ca passe mais après Documents and Settings ca ne passe pas
    ilo n'y a pas d'autres moyens de voir mon printf pour savoir qu'elle valeur prend value
    Tu n'as pas essayé d'entrer le début de Document puis d'appuyer sur TAB pour l'auto complétion ? Il devrait mettre automatiquement les " puis apres tu valides et tu entres dans le reste des dossiers pour arriver là où tu veux !
    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 !

  10. #50
    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
    en fait pour mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gtk_combo_box_get_active_text (combobox);
    il faut avoir une version plus recente de gtk la mienne c'est 2.4 et en dessous il me marque aussi fonction indéfini donc il ne la connait pas. Du coup je pense que je vais rester avec une comboboxentry.
    Sinon pour mon problème où quand je sélectionne le nombre 31 dans la combobox1 je veux qu'il me propose dans la combobox2 que les mois en 31.
    bizarrement ca marche quand je choisi du premier coup 31 par contre si je choisi d'abord 2 imaginons il me propose tous les mois si je change pour mettre 31 il me propose tous les mois
    Ainsi faudrait qu'à chaque fois que je change de nombre il réinitialise la combobox2 en fait, mais est ce possible?
    merci

  11. #51
    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
    en fait pour mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    gtk_combo_box_get_active_text (combobox);
    il faut avoir une version plus recente de gtk la mienne c'est 2.4 et en dessous il me marque aussi fonction indéfini donc il ne la connait pas. Du coup je pense que je vais rester avec une comboboxentry.
    Nan ... faut jamais s'avouer vincu aussi rapidement:
    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
    #if GTK_CHECK_VERSION (2, 6, 0)
    #define combo_box_active_get_text(combo_box) gtk_combo_box_get_active_text (combo_box)
    #else
    char *combo_box_active_get_text (GtkComboBox *combo_box)
    {
      gchar *s_text = NULL;
      gboolean b_ret = FALSE;
      GtkTreeIter iter;
     
      g_return_val_if_fail (combo_box != NULL, s_text);
     
      b_ret = gtk_combo_box_get_active_iter (combo_box, &iter);
      if (b_ret)
      {
        GtkTreeModel *p_model = NULL;
     
        p_model = gtk_combo_box_get_model (combo_box);
        if (p_model != NULL)
        {
          gtk_tree_model_get (p_model, &iter, 0, &s_text, -1);
        }
      }
      return s_text;
    }
    #endif
    Sinon pour mon problème où quand je sélectionne le nombre 31 dans la combobox1 je veux qu'il me propose dans la combobox2 que les mois en 31.
    bizarrement ca marche quand je choisi du premier coup 31 par contre si je choisi d'abord 2 imaginons il me propose tous les mois si je change pour mettre 31 il me propose tous les mois
    Ainsi faudrait qu'à chaque fois que je change de nombre il réinitialise la combobox2 en fait, mais est ce possible?
    merci
    Il faut effectivement à chaque fois vider ta liste combo, c'est faisable de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void combo_box_clear (GtkComboBox *p_combo_box)
    {
      GtkTreeModel *p_tree_model = NULL;
     
      g_return_if_fail (p_combo_box != NULL);
     
      p_tree_model = gtk_combo_box_get_model (p_combo_box);
      gtk_list_store_clear (GTK_LIST_STORE (p_tree_model));
    }
    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 !

  12. #52
    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
    je voudrais mettre la procédure d'initialisation de la combobox directement dans ma fonction clicked du bouton de la combobox et éviter de faire une nouvelle fonction est ce possible? En fait j'ai essayé je l'ai mis en début de ma fonction pour qu'il initialise dès le début mais dans ce cas je n'ai pas le choix dans ma combobox1 quoi que je sélectionne il me met 31 et dans la combobox2 j'ai tous les mois une infinité de fois? donc où puis je la mettre? Faut il que je la laisse dans la fonction clear et dans ce cas où appeller cette fonction et comment?
    de plus je ne comprend pas très bien ce qu'est GtkTreeModel?

    je vous remets le code de ma fonction clicked du bouton:
    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
     
    void
    on_comboboxentry1_changed(GtkComboBox *combobox,gpointer user_data)
    {
      int value = 0;
      const gchar *text = NULL;
     
      GtkComboBox * p_combo2 = user_data;
     
     
     
     
     
                                           /*récupération de la valeur dans la combobox1*/
      text=gtk_entry_get_text(GTK_ENTRY (GTK_BIN (combobox)->child));
      //text = gtk_combo_box_get_active_text (combobox);
    /*on transcrit la chaine en un nombre*/
     //value=strtol(text, NULL,0);
     value = (int) strtol (text, NULL,0);
     printf("%d",value);
     
      if (value==31)
      {
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("janvier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mars"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mai"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juillet"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("aout"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("octobre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("decembre"));
    }
      else
      {
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("janvier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("fevrier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mars"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("avril"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mai"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juin"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juillet"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("aout"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("septembre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("octobre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("novembre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("decembre"));
     
    }
     
    }
    merci,

  13. #53
    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
    je voudrais mettre la procédure d'initialisation de la combobox directement dans ma fonction clicked du bouton de la combobox et éviter de faire une nouvelle fonction est ce possible ?
    Heu initialisation de quel GtkComboBox ? Du second ok mais celui là même qui utilise ce callback, ca n'aurais aucun sens ! Et de toutes manières il faut pas essayer de faire des fonctions de plus en plus grosses, il faut garder un certains découpage donc une fonction d'initialisation du second GtkComboBox qui prend en paramètre ce même combo (ici celui des mois en l'occurence) et le chiffre choisi depuis le premier combo. Le remplissage se ferais alors dans la fonction prévue pour avec les conditions et tout... Une vraie fonction spécialisée quoi

    Citation Envoyé par pepsister
    de plus je ne comprend pas très bien ce qu'est GtkTreeModel?
    Un GtkTreeModel n'est autre en fait qu'un widget de type GtkListStore ou GtkTreeStore. C'est un widget qui permet de stocker le modèle de données (il existe aussi le terme de magasin) du widget courant. Pour certains widgets on peu (ou même parfois on doit comme c'est le cas avec GtkTreeView) créer un magasin de données personnalisé. J'explique tout cela dans mon nouveau tutoriel destiné au GtkComboBox et GtkComboBoxEntry, il est en cours de correction donc sa sortie est imminente mais il est déjà disponible sur ma page de developpez.com si le coeur t'en dit

    Citation Envoyé par pepsister
    je vous remets le code de ma fonction clicked du bouton
    Attention, on ne parle pas de bouton ici mais du GtkComboBox, il faut pas mélanger, j'ai faillit croire un instant que c'était un callback pour un GtkButton donc attention aux termes utilisés. Il faut comme on m'a dit un jour à mes début en C, apprendre à parler le C (pour toi ici c'est GTK+) en français avant de vouloir de programmer avec et tu peux me croire, ca sert pour mieux se faire comprendre
    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 !

  14. #54
    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 essayé de mettre la fonction d'initialisation pour ma combobox2 mais elle ne marche pas et je pense que c'est un de mes appelle qui ne va pas.
    Voici la fonction comme vous me l'avez mis plus haut dans mon callback.c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void combobox2_clear (GtkComboBox *p_combo_box)
    {
      GtkTreeModel *p_tree_model = NULL;
     
      g_return_if_fail (p_combo_box != NULL);
     
      p_tree_model = gtk_combo_box_get_model (p_combo_box);
      gtk_list_store_clear (GTK_LIST_STORE (p_tree_model));
    }
    voici mon callaback.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void combobox2_clear (GtkComboBox *p_combo_box);
    et voici l'appelle dans mon interface.c je pense que c'est là qu'il y a un problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    g_signal_connect (G_OBJECT (comboboxentry2), "clicked",
                        G_CALLBACK (combobox2_clear),
                        NULL);
    j'espère que je parle bien gtk+ cette fois ci
    merci

  15. #55
    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
    et voici l'appelle dans mon interface.c je pense que c'est là qu'il y a un problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    g_signal_connect (G_OBJECT (comboboxentry2), "clicked",
                        G_CALLBACK (combobox2_clear),
                        NULL);
    Ce n'est pas un appel arrrrggg... c'est une connection d'un callback à un widget donc une gestion d'un événement utilisateur ! Toi ce que tu veux, c'est appeler la fonctin combobox2_clear à partir d'une autre fonction non ?

    Donne moi le code de l'autre fonction (callback) et l'enregistrement de ce callback que tu as fait (donc pour combobox1) et montre moi ce que tu as essayé de faire exactement pour que je sache exactement ce que tu veux car là j'dois dire que je ne sais pas si tu veux faire un callback pour effacer ou simplement un appel à partir d'une autre fonction (ton callback du combobox1) !
    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 !

  16. #56
    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
    je souhaite que lorsque l'utilisateur choisit un nombre dans la combobox1, on lui propose dans la combobox2 les mois qui vont mais pour cela il faut qu'à chaque fois qu'on modifie le nombre dans la combobox1 ca change les mois dans la combobox2. En effet, si je choisis 3 dans la combobox1 il me propose tous les mois de l'année (jusque là normal) mais si je décide de changer le nombre dans la combobox1 par exemple 31 là il me met la même liste alors qu'il devrait me proposé seulement janvier, mars, mai, juillet, aout, octobre,decembre.
    je vous donne ma fonction comme vous me le demander (callback.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
     
    void
    on_comboboxentry1_changed(GtkComboBox *combobox,gpointer user_data)
    {
      int value = 0;
      const gchar *text = NULL;
     
      GtkComboBox * p_combo2 = user_data;
     
     
                                           /*récupération de la valeur dans la combobox1*/
      text=gtk_entry_get_text(GTK_ENTRY (GTK_BIN (combobox)->child));
      //text = gtk_combo_box_get_active_text (combobox);
    /*on transcrit la chaine en un nombre*/
     //value=strtol(text, NULL,0);
     value = (int) strtol (text, NULL,0);
     printf("%d",value);
     
      if (value==31)
      {
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("janvier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mars"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mai"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juillet"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("aout"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("octobre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("decembre"));
    }
      else
      {
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("janvier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("fevrier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mars"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("avril"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mai"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juin"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juillet"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("aout"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("septembre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("octobre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("novembre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("decembre"));
     
    }
     
    }
    et voici l'appelle dans l'interface.c

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    g_signal_connect (G_OBJECT (comboboxentry1), "changed",
                        G_CALLBACK (on_comboboxentry1_changed),
                        (gpointer)comboboxentry2);
    merci

  17. #57
    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
    Bin comme je disais, je ne vois pas le problème, y'a juste un seul appel à faire:
    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
    /* Fonction qui vide un combobox: */
    void combobox2_clear (GtkComboBox *p_combo_box)
    {
      GtkTreeModel *p_tree_model = NULL;
     
      g_return_if_fail (p_combo_box != NULL);
     
      p_tree_model = gtk_combo_box_get_model (p_combo_box);
      gtk_list_store_clear (GTK_LIST_STORE (p_tree_model));
    }
     
     
    /* Callback du combobox1: */
    void
    on_comboboxentry1_changed(GtkComboBox *combobox,gpointer user_data)
    {
      int value = 0;
      const gchar *text = NULL;
     
      GtkComboBox * p_combo2 = user_data;
     
     
      text = gtk_entry_get_text(GTK_ENTRY (GTK_BIN (combobox)->child));
      value = (int) strtol (text, NULL,0);
     
    /* Franck.H - On efface le comboboxentry2 */
      combobox2_clear (p_combo2);
     
      if (value==31)
      {
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("janvier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mars"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mai"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juillet"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("aout"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("octobre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("decembre"));
      }
      else
      {
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("janvier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("fevrier"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mars"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("avril"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("mai"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juin"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("juillet"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("aout"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("septembre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("octobre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("novembre"));
          gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo2), _("decembre"));    
      }
    }
    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 !

  18. #58
    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
    en fait je pensais que tout ce qu'on mettait dans callback.c était mis dans callback.h (là ce n'est pas la peine c'est bien ca?) et je pensais surtout que tout ce qui était mis dedans était les fonctions appeller à l'aide d'un callback dans interface.c. Je pensais vraiment qu'on ne mettait que les fonctions des boutons et des flèches des combo auxquels on associait un évènement.
    merci beaucoup

  19. #59
    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
    en fait je pensais que tout ce qu'on mettait dans callback.c était mis dans callback.h (là ce n'est pas la peine c'est bien ca?) [...]
    Bin disons que tu peux mettre ce que tu veux dedans mais bien ranger c'est mieux donc si tu as des fonction gérant tes GtkComboBox comme le vidage bin rien ne t'empêches de mettre ces fonction (même en privée) dans ce module !
    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.
Page 3 sur 3 PremièrePremière 123

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