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 :

Comparer 2 GtkTreeiter : Utilisation de gint *GtkTreeIterCompareFunc


Sujet :

GTK+ avec C & C++

  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut Comparer 2 GtkTreeiter : Utilisation de gint *GtkTreeIterCompareFunc
    Bonjour,

    je voudrais savoir si 2 GtkTreeIter désignent le meme emplacement, pour ce faire je voudrais utiliser cette fonction mais je ne comprends pas comment l'utiliser?
    Pourriez-vous m'éclairer ?
    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
    En fait cette fonction est un pointeur de fonction en réalité, c'est la signature de la fonction utilisateur à passer en paramètre aux fonctions de tri de la même page, voilà

    Plus d'informations ici: http://209.85.129.104/search?q=cache...lnk&cd=1&gl=fr
    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
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    merci je vais essayer de ce pas

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    si je comprends bien, je dois juste écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    GtkTreeIterCompareFunc  ma_fonction;
    ...
    if(ma_fonction(model, &iter1, &iter2, NULL) == 0){
     // Actions;
    }

  5. #5
    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
    Non. En fait, c'est simplement une fonction de rappel (callback si tu préfère) que tu utilises de la même manière qu'avec les callback que tu enregistres pour les événements des widgets. Cette fonction est à transmettre aux fonctions:
    • gtk_tree_sortable_set_sort_func
    • gtk_tree_sortable_set_default_sort_func

    Donc elle sert uniquement (apparement, je n'ai pas encore étudié profondement la question par manque de temps) à ces fonctions de tri, c'est tout !
    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 !

  6. #6
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    merci pour l'explication mais maintenant je me pose une autre question.
    Si c'est une fonction Callback, il est donc possible de l'utiliser comme une fonction normale. Par exemple, si je l'utilise comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    /* prototype de ma_fonction */
    void ma_fonction  (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data);
    ...
    /* appel de ma_fonction */
    ma_fonction  (mon_model, &iter1, &iter2, pointeur_struct);

  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
    Citation Envoyé par bit_o
    merci pour l'explication mais maintenant je me pose une autre question.
    Si c'est une fonction Callback, il est donc possible de l'utiliser comme une fonction normale. Par exemple, si je l'utilise comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    /* prototype de ma_fonction */
    void ma_fonction  (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data);
    ...
    /* appel de ma_fonction */
    ma_fonction  (mon_model, &iter1, &iter2, pointeur_struct);
    Bin ca te sert à rien de l'utiliser tout seul, ce n'est pas une fonction avec un comportement par défaut, un callback, c'est toi qui définit la fonction donc son comportement ... c'est l'utilisation qui doit en être faite ici si je me trompe pas
    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 !

  8. #8
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Par défaut
    merci,

    donc, en résumé je ne peux utiliser cette fonction qu'avec une de ces deux fonctions :
    * gtk_tree_sortable_set_sort_func
    * gtk_tree_sortable_set_default_sort_func

    pour ceux que ça intéresse, j'ai utilisé une autre méthode pour connaitre la ligne qui était sélectionnée par l'utilisateur
    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
     
    void OnSelectedTreeView(GtkTreeView *pTreeView, GtkTreePath *pPath, GtkTreeViewColumn *pColumn, gpointer data){
     
        gint nb;
        gchar *sel_str = NULL;
     
        GtkTreeModel *pTreeModel;
        GtkTreeIter iter;
     
        /* récupération du modèle */
        pTreeModel = gtk_tree_view_get_model(pTreeView);
     
        /* on place iter sur l'élément pointé par l'utilisateur */
        gtk_tree_model_get_iter(pTreeModel, &iter, pPath);
     
        /* récupération du numéro de l'élément pointé */
        sel_str = gtk_tree_model_get_string_from_iter(GTK_TREE_MODEL(pTreeModel), &iter);
     
        /* 
            * sel_str est de la forme "0:4" 
            * où le 0 désigne le premier noeud  du GtkTreeView 
            * et le 4 désigne la ligne 5 de ce GtkTreeView 
        */
     
        /* on extrait le numéro de la ligne sélectionnée grace à la fonction treeViewGetLine(gchar *) */
        nb = treeViewGetLine(sel_str);
        }
    merci pour vos explications sur les pointeurs de fonction

    EDIT : la fonction que j'utilise treeViewGetLine(gchar *) est une fonction à recoder selon vos besoins, et non pas une fonction de GTK

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

Discussions similaires

  1. Utilisation de string::compare
    Par Seabast888 dans le forum Débuter
    Réponses: 3
    Dernier message: 29/11/2009, 16h57
  2. [AC-2003] utilisation strcomp pour comparer les dates
    Par chuspyto dans le forum IHM
    Réponses: 1
    Dernier message: 18/09/2009, 15h38
  3. Réponses: 5
    Dernier message: 13/02/2007, 08h53
  4. Simplifier l'utilisation de compare with et replace with
    Par guipom dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 08/01/2007, 11h07
  5. Réponses: 3
    Dernier message: 28/10/2005, 01h12

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