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 :

effacer le contenu de la combobox


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 effacer le contenu de la combobox
    bonjour,
    en fait je souhaite pouvoir effacer le contenu de ma combobox. J'ai une fonction qui me permet de réintialiser ma liste de ma combobx a chaque fois le problème c'est qu'elle garde le choix que j'ai pu faire écrit et elle efface la liste moi je voudrais pouvoir effacer également ce que contient la bombobox comment faire. Voici la fonction qui permet d'initialiser la combobx a chaque utilisation et donc de supprimer ma liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void combobox10_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));
    }
    mais je voudrais également supprimer ce qu'elle contient j'avais penser rajouter a la fin de la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /*définit le texte de la combo box*/
    	gtk_entry_set_text(GTK_ENTRY(GTK_COMBO(p_combo_box)->entry), "");
    mais ca ne marche pas je ne vois pas trop pourquoi ni comment faire du coup
    merci

  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
    Dans le tutoriel Bien utiliser les GtkComboBox et GtkComboBoxEntry il y'a toutes les infos pour bien utiliser et même maîtriser les GtkComboBox et GtkComboBoxEntry ... c'est dans ma signature
    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
    j'ai regardé ton site mais je ne comprend pas très bien . Qu'est ce qu'on appelle élément courant? J'ai testé le programme qui est fait mais moi je veux supprimer ce qui a été sélectionner et le remplacer par un vide.
    En fait j'ai deux combo. En fonction du choix dans la première, il y a différentes choses dans la deuxième. Mon problème est, quand je sélectionne imaginons "couleur" dans ma combobox1, il me propose des choses, je choisi "rouge" ensuite je reviens sur ma première combobox pour séléctionner un autre choix imaginons "animaux", là il me vide bien ma liste de la combo2 et me propose d'autres choix (chat, chien...) mais mon choix "rouge" n'a pas été supprimé. C'est celui la en fait que je veux supprimer mais je suppose qu'il faut mettre la chaine vide, non?
    sinon peut etre il faut utiliser cette instruction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /* On supprime l'element courant. */
          gtk_list_store_remove (GTK_LIST_STORE (p_model), & iter);
    mais pour moi, ca sa supprime plutot la liste petit a petit

  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
    j'ai regardé ton site mais je ne comprend pas très bien . Qu'est ce qu'on appelle élément courant?
    Je pensais pourtant être assez clair dans ce tutoriels L'élément courant c'est la valeur (ou élément) sélectionné donc celui qui est affiché dans la liste combo ...

    Ton widget est de quel type ? Comment l'as-tu créé ?
    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
    voici ma fonction me permettant d'effacer la combobox et la fonction où je l'appelle
    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
     
    void combobox11_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));
    }
     
     
     
    void
    on_comboboxentry10_changed              (GtkComboBox     *combobox,
                                            gpointer         user_data)
    {
    const gchar *text = NULL;
    const gchar *mot1= "toutes les deux semaines";
    const gchar *mot2= "toutes les trois semaines";
    GtkComboBox * p_combo11 = user_data;
    int comp1 = 0;
    int comp2 = 0;
     
    text=gtk_entry_get_text(GTK_ENTRY (GTK_BIN (combobox)->child));
    comp1=strcmp(text, mot1);
    comp2=strcmp(text, mot2);
    combobox11_clear (p_combo11);
    if ((comp1==0) || (comp2==0)) {
    gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo11), _("le lundi"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo11), _("le mardi"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo11), _("le mercredi"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo11), _("le jeudi"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo11), _("le vendredi"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo11), _("le samedi"));
    gtk_combo_box_append_text (GTK_COMBO_BOX (p_combo11), _("le dimanche"));
    }
    }

  6. #6
    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 suis retournée sur ton site
    désolé j'ai lu que vider une gtkcombobox et non pas une gtkcomboboxentry
    du coup j'ai cahngé monprogramme ca marche et j'ai compris
    j'ai juste une petite question
    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
     
    void combobox11_clear (GtkComboBox *p_combo_box)
    {
      GtkTreeModel *p_tree_model = NULL;
       GtkTreeIter    iter;
     
      //g_return_if_fail (p_combo_box != NULL);
     
     /*on récupère le modèle qu'on a crée*/
      p_tree_model = gtk_combo_box_get_model (p_combo_box);
     /* On recupere le GtkTreeIter de l'element courant. */
       if (gtk_combo_box_get_active_iter (p_combo_box, & iter))
       {
          /* On supprime l'element courant. */
          gtk_list_store_remove (GTK_LIST_STORE (p_tree_model), & iter);
     
          /* Il faut aussi vider la zone de texte. */
          gtk_entry_set_text (GTK_ENTRY (GTK_BIN (p_combo_box)->child), "");
       }
      gtk_list_store_clear (GTK_LIST_STORE (p_tree_model));
    }
    en fait j'ai vu que sur ton site il n'y a pas cette ligne de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g_return_if_fail (p_combo_box != NULL);
    et c'est vrai que j'ai testé sans et tout marche alors en fait je me demande à quoi elle sert car tu m'avais dit de la mettre dans un autre sujet mais je n'avais pas trop compris pourquoi, je pense que là ca ne sert pas à grand chose dans ma fonction, si?

    Je pensais pourtant être assez clair dans ce tutoriels L'élément courant c'est la valeur (ou élément) sélectionné donc celui qui est affiché dans la liste combo ...
    t'inquiètes ton tutoriel est très bien c'est moi qui ne sait pas le lire

  7. #7
    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
    C'est vrai, je ne les aient pas mis mais c'est que dû à un oubli de ma part, étant toujours sûr moi même que mes arguments sont toujours bien transmis et valide, lorsque je fait des programmes de tests, je ne met pas ces test de validité des arguments mais il vrai également qu'il est préférable des tester à chaque fois les arguments qu'on utilise.

    On peut simplement dire que les fonctions ne sont rien d'autres que des raccourcis à des conditions logiques if. En tout il y a:
    • g_return_if_fail
    • g_return_val_if_fail


    La première est à utiliser (un appel par argument) sur des fonctions/callback qui ne renvoient pas de valeur et la seconde à utiliser sur les fonctions en renvoyant une car elle prend un second argument qui est la valeur à renvoyer si le test échoue !
    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. Effacer le contenu d'une combobox
    Par shaun_the_sheep dans le forum C#
    Réponses: 2
    Dernier message: 11/01/2010, 14h31
  2. Effacer le contenu d'une combobox
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/05/2009, 11h48
  3. effacer contenu d'une combobox liée
    Par christi dans le forum Windows Forms
    Réponses: 13
    Dernier message: 04/02/2009, 17h25
  4. effacer le contenu d'uun combobox
    Par Edta dans le forum Tkinter
    Réponses: 3
    Dernier message: 21/07/2006, 15h22
  5. Effacer le contenu d'un fichier a partir d'une ligne
    Par localhost dans le forum Linux
    Réponses: 3
    Dernier message: 04/04/2004, 04h47

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