QTreeWidgetItems tri stables QTreeWidget?
-
21-09-2019 - |
Question
J'ai une liste de QTreeWidgetItems (avec des enfants) dans un QTreeWidget. Je n'utilise un modèle pour mes données.
D'une autre fenêtre dans mon application, l'utilisateur peut naviguer à travers le même ensemble de données (vu différemment) et la QTreeWidget dans la première fenêtre met ensuite en évidence cette ligne spécifique en définissant la couleur d'arrière-plan.
Cependant, lorsque la QTreeWidget est triée sur une colonne où certains des éléments ont la même valeur est définie quel élément est le premier. Quand je navigue alors en utilisant l'autre fenêtre et la couleur de fond de l'élément est défini, les éléments égaux Swaps dans la vue automatiquement. Cela semble très étrange.
Je soupçonne que cela est dû à l'algorithme de tri de QTreeWidget, mais personne ne sait une solution de contournement possible à cela?
La solution
Utilisez-vous QItemSelectionModel
pour ce faire, ou avez-vous écrit vous-même?
- Si vous avez écrit vous-même, je suggère d'utiliser
QItemSelectionModel
. - Si vous ne l'avez pas, il semble que vous voulez un algorithme de tri personnalisé qui exigent la création d'un dérivé
QTreeWidget
, si vous faites cela, vous pourriez tout aussi bien utiliserQTreeView
et une coutume Modèle / Voir cadre et unQTreeView
.