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 :

Récupérer la ligne d'un GtkTreeView


Sujet :

GTK+ avec C & C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 204
    Par défaut Récupérer la ligne d'un GtkTreeView
    Bonjour à tous !!!!!

    J'aimerais, comme le dit le titre, savoir comment on peut récuperer la ligne d'un GtkTreeView. J'ai cherché partout mais je ne trouve rien...

    Mon cas est que j'ai un TreeView qui affiche la liste des chansons que la personne a choisi. Cette liste est stocké dans une GSlist. J'ai un bouton "Remove" et celle ci doit enlever la chanson sélectionné du GtkTreeView et de la GSlist.

    Voila j'espere que vous pouvez m'aider ^^. Voici mon code pour ceux qui en aurait besoin :

    Le GtkTreeView :
    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
     
     
    /* Configuration des variables de GtkTreeView */
         TreeStore = gtk_tree_store_new(1, G_TYPE_STRING);
         TreeView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(TreeStore));
         gtk_tree_view_set_reorderable (GTK_TREE_VIEW(TreeView), TRUE);
         CellRenderer = gtk_cell_renderer_text_new();
         Column = gtk_tree_view_column_new_with_attributes("Nom de la musique", CellRenderer, "text", 0, NULL);
         gtk_tree_view_append_column(GTK_TREE_VIEW(TreeView), Column);     
         Box_tree_1 = gtk_vbox_new(FALSE, 0);                  
         Box_tree_2 = gtk_hbox_new(FALSE, 0);
         Bouton_1 = gtk_button_new_from_stock(GTK_STOCK_ADD);
         Bouton_2 = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
         g_signal_connect(G_OBJECT(Bouton_2), "clicked", G_CALLBACK(Supprime_musique), TreeView);
         ScrollBarre = gtk_scrolled_window_new(NULL, NULL);
         gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(ScrollBarre), TreeView);
         gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(ScrollBarre), GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS);

    Son remplissage (il lit les information dans un fichier. Lorsqu'il ferme la fenetre du GtkTreeView, le fichier se rmeplira avec la GSList) :
    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
     
     /* Remplissage du GtkTreeView */
         FILE *Fichier;
         char Message[2000] = "";
         Fichier = fopen(Path_Musique, "r");
     
         if(Fichier != NULL)
         {
             while(fgets(Message, 2000, Fichier) != NULL)
             {
                  Liste_musique = g_list_append(Liste_musique, Message);
                  gtk_tree_store_append(TreeStore, &Iter_tree, NULL);
                  gtk_tree_store_set(TreeStore, &Iter_tree, 0, g_strdup_printf("%s", g_locale_to_utf8(Message, -1, NULL, NULL, NULL)), -1);                   
             }
     
          fclose(Fichier);          
         }

    Et la fonction Supprime_musique (à partir de cette fonction je ne sais plus quoi 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
     
    void Supprime_musique(GtkWidget *widget, gpointer data)
    {
         /* Creation des variables */
         GtkTreeModel *Model;
         GtkTreeIter Iter;
         GtkTreePath *Path;
         int id;
     
         /* Caracterisation des variables */
         Path = gtk_tree_path_new();
         Model = gtk_tree_view_get_model (data);
     
    }

    Merci d'avance de votre aide.
    Ou bien vous pouvez peut-être me donner d'autres idées pour permettre la personne de choisir ses chansons qui s'affiche. Avoir la possiblité de les supprimer et d'en ajouter

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut
    regarde ici il montre comment recuperer une selection.

    http://developer.gnome.org/doc/API/2...reeWidget.html

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 204
    Par défaut
    Je suis désolé mais je suis déjà aller sur cette page. Je ne vois aucun moyen de récuperer le numéro de la ligne, à moins que j'ai sauté quelque chose...

    En tout cas merci de ton aide

  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
    Dans ta question initiale, tu ne parles pas de *numéro* de ligne.... Le lien donné montre comment récupérer un GtkTreeIter sur la ligne sélectionnée, et tu peux utiliser cet itérateur pour supprimer ta chanson de ton GtkTreeView.
    Tu peux pas stocker les éléments de ta GList dans le modèle avec le reste des données ? Comme ça tu te poseras pas la question de "comment supprimer ma chanson de la GList" Une donnée présente dans un modèle n'est pas nécessairement affichée dasn le GtkTreeView.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 204
    Par défaut
    Donc si j'ai bien compris, je devrais ne pas utiliser les GList ?

    Et ensuite, j'aimerais aussi savoir comment parcourir tout le GTkTreeView.
    Puuisque quand on ajoute ou supprime les données du GtkTreeView, il faut aussi changer les données du fichier qui contient toute la sélection des chansons

    Et enfin, si j'ai le TreeIter de la ligne sélectionné, comment je fais pour supprimer cette ligne ?

    [edit] : et je ne vois pas comment récupérer l'iter de l'item sélectionné avec le lien donné

  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
    Citation Envoyé par mick009
    Donc si j'ai bien compris, je devrais ne pas utiliser les GList ?
    Je sais pas... Tu peux peut être stocker les données que t'as dans ta GList dans ton modèle, mais peut être pas. C'est toi seul qui peut le savoir vu que tu connais ton appli

    Citation Envoyé par mick009
    Et ensuite, j'aimerais aussi savoir comment parcourir tout le GTkTreeView.
    Puuisque quand on ajoute ou supprime les données du GtkTreeView, il faut aussi changer les données du fichier qui contient toute la sélection des chansons
    Il doit y avior les fonctions appropriées dans http://developer.gnome.org/doc/API/2...TreeModel.html , en particulier gtk_tree_model_get_iter_first et gtk_tree_model_iter_next


    Citation Envoyé par mick009
    Et enfin, si j'ai le TreeIter de la ligne sélectionné, comment je fais pour supprimer cette ligne ?
    gtk_list_store_remove si tu utilises un GtkListStore

    Citation Envoyé par mick009
    [edit] : et je ne vois pas comment récupérer l'iter de l'item sélectionné avec le lien donné
    Cf tree_selection_changed_cb dans le lien donné...

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/12/2005, 14h24
  2. y'a t il un moyen de récupérer la ligne N d'une requete sql?
    Par c_moi_c_moi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/11/2005, 10h47
  3. Récupérer la ligne sélectionnée dans un ListBox
    Par jmjmjm dans le forum Composants VCL
    Réponses: 3
    Dernier message: 11/11/2005, 22h13
  4. récupérer chaque ligne d'une requête ?
    Par ctobini dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 10/11/2005, 09h15
  5. Récupérer la ligne en cours dans un DBGrid
    Par PH69 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/07/2005, 16h59

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