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 ou GtkTreeView


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut ComboBox ou GtkTreeView
    Bonjour,

    Je souhaite créer un GtkTreeView se comportant comme un ComboBox. C'est-à-dire qu'une seule ligne soit visible à un instant donné et un scrollbar pour en visualiser la totalité. Sachant que chaque ligne possède plusieurs colonnes avec en particulier des GtkCellRendererToggle.
    J'aimerais savoir si quequ'un parmi vous a une idée / exemple pour cette réalisation.

    Merci à l'avance et cordialement.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    Tu dois pouvoir utiliser un GtkComboBox à la place de ton GtkTreeView vu que le GtkComboBox peut utiliser un GtkTreeModel et des GtkCellRenderer

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut Info complémentaires
    Bonjour,
    Je ne sais pas pourquoi mon code avec GtkTreeView fonctionne correctement et s'affiche en totalité. Mais en remplaçant GtkTreeView par GtkComboBox selon le code suivant, la zone affichage devient vide.
    Ci-joint le 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    .....
      list_objets = gtk_combo_box_new();
      (void)setup_tree_view(list_objets);
      store = gtk_list_store_new(COLUMNS, G_TYPE_BOOLEAN, G_TYPE_STRING);
      i = 0;
      while (list_affic[i].libelle != NULL)
      {
        gtk_list_store_append (store, &iter);
        gtk_list_store_set (store, &iter, CHOIX_IT, list_affic[i].cocher,
                            LIBELLE, list_affic[i].libelle, -1);
        i++;
      }
     
      gtk_combo_box_set_model (GTK_COMBO_BOX(list_objets), GTK_TREE_MODEL(store));
      gtk_box_pack_start(GTK_BOX(hbox7), list_objets, FALSE, TRUE, 0);
      gtk_container_add(GTK_CONTAINER(window), hbox7);
      g_object_unref (store);
    ....
    ....
    void setup_tree_view(GtkWidget *treeview)
    {
      GtkCellRenderer *renderer;
      GtkTreeViewColumn *column;
     
      renderer = gtk_cell_renderer_toggle_new();
      g_object_set (G_OBJECT(renderer), "activatable", TRUE, NULL);
      column = gtk_tree_view_column_new_with_attributes("Cocher", renderer, "active", CHOIX_IT, NULL);
      gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
     
      renderer = gtk_cell_renderer_text_new();
      column = gtk_tree_view_column_new_with_attributes("Libelle", renderer, "text", LIBELLE, NULL);
      gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
    }
    ......
    Dans le code ci-dessus, si je remplace gtk_combo_box_new() par gtk_tree_view_new(), il fonctionne correctement avec un affichage du treeview en entier. Or je souhaite un affichage d'une seule ligne comme un ComboBox.

    Cordialement.

  4. #4
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    A mon avis, il faut utiliser autre chose que des fonctions s'appelant gtk_tree_view_XXX dans ton setup_tree_view. Gtk+ doit probablement afficher des avertissements à ce sujet dans la console non ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut Précisions (Suites)
    Bonjour,

    Effectivement j'ai eu des warning du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GLib-GObject-WARNING **: invalid cast from `GtkComboBox' to `GtkTreeView'
    Gtk-CRITICAL **: gtk_tree_view_append_column: assertion `GTK_IS_TREE_VIEW (tree_view)' failed
    Néanmoins j'ai du mal à trouver des fonctions gtk susceptibles de remplacer gtk_tree_view_append_column() dans mon cas.

    Auriez-vous une idée sur les fonctions équivalentes qui marchent pour les ComboBox ?

    Merci à l'avance et cordialerment

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 259
    Par défaut
    La doc de GtkComboBox dit :

    "GtkComboBox implements AtkImplementorIface, GtkBuildable, GtkCellEditable and GtkCellLayout."

    et en regardant la doc de GtkCellLayout, tu devrais trouver les fonctions dont tu as besoin.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 108
    Par défaut GtkCellLayOut et ComboBox
    Toujours des suggestions pertinentes. Encore et encore un grand merci.

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

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. [VB6] [Interface] ComboBox à plusieurs colonnes
    Par mtl dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/03/2004, 17h35
  3. [VB6] [Interface] Grille avec combobox
    Par khany dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 15/01/2003, 09h55
  4. combobox et readonly
    Par Mac leod dans le forum C++Builder
    Réponses: 6
    Dernier message: 28/11/2002, 10h27
  5. combobox->text
    Par clovis dans le forum C++Builder
    Réponses: 18
    Dernier message: 21/06/2002, 15h43

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