Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre éclairé Avatar de haraelendil
    Profil pro julien Lopez
    Inscrit en
    février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Nom : julien Lopez
    Âge : 26
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : février 2004
    Messages : 282
    Points : 351
    Points
    351

    Par défaut QProxyModel et QTreeView

    Bonjour bonjour,

    Alors voila, à l'origine, j'avais un QTableView qui permettait d'afficher des données avec un modèle perso.
    Le tout était passé par un QSortFilterProxyModel pour pouvoir trier tout ce beau monde (pas besoin de la fonction filtre).

    Maintenant je voudrais rajouter une fonctionalité à savoir que certaines lignes peuvent contenir des sous-lignes, avec les même colonnes.
    J'ai donc pour cela mis en place une QTreeView me permet d'afficher une liste style QTableView mais avec les sous-lignes.

    Dans un premier temps j'ai viré le proxy pour le tri, pour faire marcher tout bien déjà comme ça.

    J'ai du pas mal modifié mon modèle pour gérer les relations parent et tout marche bien sans le tri.

    Maintenant, je ne sais pas trop si le QSortFilterProxyModel est toujours adapté à mes besoins, car j'aimerais pouvoir filtrer uniquement les lignes haut niveau (comme avant), mais sans que cela affecte l'ordre des sous-lignes.

    Quelqu'un sait si le QSortFilterProxyModel est paramétrable à ce point ou si il faut que je me refasse un ProxyModel à la main?

    De plus, quand je met un QSortFilterProxyModel tel quel, mes sous lignes ne s'ouvrent pas forcément bien, le QSortFilterProxyModel peut gérer un modèle en arbre (et dans ce cas j'ai un problème dans mon modèle initial qui n'émerge que quand il y a le proxy par dessus), ou est-ce que c'est déjà pas conçu à la base pour gérer autre chose que des modèles type liste / table.

    Et dans le cas ou un simple QSortFilterProxyModel n'irait pas, le plus simple est de faire un proxy qui hérite de QSortFilterProxyModel ou carrément de QAbstractProxyModel?

    Merci d'avance
    première pré-version de QExtend, projet de bibliothèque communautaire basée sur Qt.

  2. #2
    Membre éclairé Avatar de haraelendil
    Profil pro julien Lopez
    Inscrit en
    février 2004
    Messages
    282
    Détails du profil
    Informations personnelles :
    Nom : julien Lopez
    Âge : 26
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : février 2004
    Messages : 282
    Points : 351
    Points
    351

    Par défaut

    Bon j'ai finis par m'en sortir, si quelqu'un est face à ce problème genre de problème un jour:

    Le QSortFilterProxyModel peut très bien gérer les arbres, mes soucis de sous lignes qui n’apparaissaient pas venait d'un soucis dans le modèle de base.

    Et pour faire en sorte que seules les lignes de premier ordre soient triées, il suffit de redéfinir les méthodes mapToSource et mapFromSource, en appelant que celle de QSortFilterProxyModel dans le cas ou il n'y a pas de parent, sinon de faire un mapping direct via ligne/colonne.
    première pré-version de QExtend, projet de bibliothèque communautaire basée sur Qt.

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •