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 :

Comment vider un GtkComboBox(Text)


Sujet :

GTK+ avec C & C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Par défaut Comment vider un GtkComboBox(Text)
    Bonjour,

    Je voudrais vider un GtkComboBox mais je ne sais pas comment faire....

    Je fais appel à la fonction "gtk_combo_box_get_has_entry" de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void clean(GtkComboBoxText *comboboxtext){
    	while (gtk_combo_box_get_has_entry (GTK_COMBO_BOX(comboboxtext))){
    		gtk_combo_box_text_remove(comboboxtext,0);
    	}	
    }
    Mais en faite je crois qu'il ne rentre jamais dans ma boucle...
    Même si je rajoute : "gtk_combo_box_text_prepend_text (comboboxtext,"Test");" avant mon while (pout être sur qu'il y a bien une entrée, rien ne se passe =/)

    J'ai vu aussi => http://franckh.developpez.com/tutori...bobox/#LII-A-7 mais ça n'a pas marché =/ (peut-être que ça vient du faite qu'ils sont "encore" à la version 2.0 alors que moi je suis en 2.24...)

    Merci pour votre aide
    Ludo

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    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 308
    Billets dans le blog
    5
    Par défaut
    Si tu tiens à complètement vider le combobox tu peux tout aussi bien utiliser cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void                gtk_combo_box_text_remove_all       (GtkComboBoxText *combo_box);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Par défaut
    Mais... Mais tu l'as trouvé où cette fonction ?!

    Update : Bon j'ai trouvé : C'est pour gtk 3.1 du coup je vais faire un petit upgrade de mon programme (je suis en 2.24 pour le moment...)
    Comment on fait pour savoir qu'elle version de gtk est utilisé avec anjuta ?

    Dans mon Makefile j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PROJET_C_CFLAGS = -DGSEAL_ENABLE -pthread -I/usr/include/gtk-3.0 [...]
    PROJET_C_LIBS = -pthread -lgtk-3  [...]
    Du coup je me suis dit que j'étais déjà sous gtk 3 mais mon code ne marche pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_combo_box_text_remove_all(list_sessions);
    (Avec list_sessions définie comme ça)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GtkComboBoxText *list_sessions = (GtkComboBoxText *) gtk_builder_get_object(builder, "list_sessions");
    J'obtiens un jolie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Program has been terminated receiving signal 11 (Segmentation fault)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Par défaut
    Hum, de l'aide si vous plait...

  5. #5
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    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 308
    Billets dans le blog
    5
    Par défaut
    Y-a-t-il au moins un élément dans le combo avant la vidange?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 29
    Par défaut
    Oui y'a toujours une entrée mais j'ai rajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gtk_combo_box_text_prepend_text (list_sessions,"Test");
    Avant pour être sur et ça plante toujours....

    Edit1 : J'ai peut être trouvé la réponse. Je fais des tests

    Edit2 : Bon en faite le problème ne venait pas de l'appel à la fonction mais d'un signal que j'avais connecté...

    Maintenant que j'ai changé ça, ça marche très bien.

    Merci encore une fois

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/01/2014, 17h02
  2. [vb.net] Comment vider un buffer ?
    Par mdc dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/12/2003, 15h43
  3. comment vider un schema
    Par otb82 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 20/10/2003, 13h36
  4. comment vider une chaine de caractère
    Par gaut dans le forum C
    Réponses: 13
    Dernier message: 12/09/2003, 11h30
  5. Comment vider un dossier ?
    Par Zinoc dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/06/2002, 14h14

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