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?

Était-ce utile?

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 utiliser QTreeView et une coutume Modèle / Voir cadre et un QTreeView.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top