Précédent   Forum du club des développeurs et IT Pro > C et C++ > Bibliothèques > Qt
Qt Forum d'entraide technique sur la bibliothèque Qt. Avant de poster -> F.A.Q Qt
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 15/11/2012, 18h08   #1
haraelendil
Membre éclairé
 
Avatar de haraelendil
 
julien Lopez
Inscription : février 2004
Messages : 280
Détails du profil
Informations personnelles :
Nom : julien Lopez
Âge : 25
Localisation : France, Marne (Champagne Ardenne)

Informations forums :
Inscription : février 2004
Messages : 280
Points : 349
Points : 349
Envoyer un message via MSN à haraelendil
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.
haraelendil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2012, 17h15   #2
haraelendil
Membre éclairé
 
Avatar de haraelendil
 
julien Lopez
Inscription : février 2004
Messages : 280
Détails du profil
Informations personnelles :
Nom : julien Lopez
Âge : 25
Localisation : France, Marne (Champagne Ardenne)

Informations forums :
Inscription : février 2004
Messages : 280
Points : 349
Points : 349
Envoyer un message via MSN à haraelendil
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.
haraelendil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h20.


 
 
 
 
Partenaires

Hébergement Web