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 :

GtKCheckButton dans un GtkListView


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Par défaut GtKCheckButton dans un GtkListView
    Bonjour,
    je developpe une application en C avec GTK. Je créé une liste avec des checkbox et je voudrais savoir comment faire pour récupérer uniquement les lignes qui sont cochées ?

    voici une partie de 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
      // la GtkListStore liste_store (le modèle) pour les opérations au crédit contient le nombre et les types des colonnes
        liste_store = gtk_list_store_new (N_COLUMNS, // nombre total de colonnes
                                              G_TYPE_BOOLEAN, // case a cocher
                                              G_TYPE_STRING, // titre 
                                              G_TYPE_STRING); // url 
     
        // élement pointant vers la list_store
        appli->list_store = (void *) liste_store;
     
        // création du GtkTreeView liste_view_débit (la vue)
        liste_view = gtk_tree_view_new ();
        // élement pointant vers la list_view du débit
        gtk_tree_view_set_model (GTK_TREE_VIEW (appli->list_view), GTK_TREE_MODEL (appli->list_store));
        gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (appli->list_view), TRUE);
        gtk_tree_view_set_headers_clickable (GTK_TREE_VIEW (appli->list_view), TRUE);
        appli->list_view = liste_view;
        //g_signal_connect (G_OBJECT (appli->tree_view), "row-activated", G_CALLBACK (selection_liste), appli);
     
        /* Creation de la première colonne */
        renderer = gtk_cell_renderer_toggle_new();		     
        colonne = gtk_tree_view_column_new_with_attributes("Check",renderer,"active",TOGGLE_COLONNE,NULL);
        //g_object_set(renderer,"activatable", TRUE,NULL);
        gtk_tree_view_column_set_sizing (colonne, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
        g_signal_connect(G_OBJECT(renderer), "toggled", G_CALLBACK(OnToggle), appli);
        gtk_tree_view_append_column(GTK_TREE_VIEW(liste_view), colonne);/* Ajout de la colonne à la vue */
     
        // création du renderer (cellule de texte)
        renderer = gtk_cell_renderer_text_new ();
     
        colonne_tgp = gtk_tree_view_column_new_with_attributes ("Titre", renderer, "text", NAME_COLONNE, NULL);
        gtk_tree_view_column_set_sizing (colonne, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
        gtk_tree_view_append_column (GTK_TREE_VIEW (liste_view), colonne);/* Ajout de la colonne à la vue */
     
        colonne = gtk_tree_view_column_new_with_attributes ("Url", renderer, "text", URL_COLONNE, NULL);
        gtk_tree_view_column_set_sizing (colonne, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
        gtk_tree_view_append_column (GTK_TREE_VIEW (liste_view), colonne);/* Ajout de la colonne à la vue */
    Je stocke les éléments graphique principaux dans une structure, pour pouvoir la passer en argument à mes callbacks.

    Pour résumer, je voudrais juste savoir comment faire une fonction "int *recupe_ligne_coche(appli)" qui me renvoi un tableau avec seulement les lignes cochées ?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,
    Il doit être posible de s'en sortir en utilisant la fonction gtk_tree_model_get_value une fois le GtkIter de la ligne récupéré.
    Le premier GtkIter peut être récupéré grâce à gtk_tree_model_get_iter_first puis utiliser gtk_tree_model_iter_next

  3. #3
    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 : 47
    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
    Je suis aussi en train de creuser la question et pour le moment la seule solution que j'ai eu en tête c'est de parcourir tous les enregistrements et d'en récupérer les valeurs de chaque lignes comme on le ferais par exemple en récupérant la liste des éléments sélectionnés, de cette maniere on peut tester la valeur booleenne de la case à cocher !
    Pour le moment j'en suis là, si jamais ca peut t'aider
    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. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4
    Par défaut
    ok, ben je vais essayer quelque chose avec les fonctions que gege2061 m'a indiqué.

    Et si un de vous 2 à une autre idée, ou un bout de code, ça serait sympa
    Merci

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

Discussions similaires

  1. DBLookupComboBox dans DBGrid
    Par KThrax dans le forum Bases de données
    Réponses: 7
    Dernier message: 24/08/2004, 15h18
  2. gérer les jpg dans une fenetre directdraw???
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 14/06/2002, 13h39
  3. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17
  4. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44
  5. Documentation DirectX dans C++Builder 3
    Par srvremi dans le forum DirectX
    Réponses: 1
    Dernier message: 26/04/2002, 09h59

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