classificação estável qtreewidgetItems no qtreewidget?
-
21-09-2019 - |
Pergunta
Eu tenho uma lista de QtreewidgetItems (com crianças) em um Qtreewidget. Não uso um modelo para meus dados.
De outra janela do meu aplicativo, o usuário pode navegar pelo mesmo conjunto de dados (visualizados de maneira diferente) e o QtreeWidget na primeira janela e depois destaca essa linha específica definindo a cor do plano de fundo.
No entanto, quando o Qtreewidget é classificado em uma coluna em que alguns dos itens têm o mesmo valor, é indefinido qual item é o primeiro. Quando navego usando a outra janela e a cor de fundo do item é definida, os swaps de itens iguais colocam na exibição automaticamente. Isso parece muito estranho.
Eu suspeito que isso se deve ao algoritmo de classificação do Qtreewidget, mas alguém conhece uma possível solução alternativa para isso?
Solução
Você está usando QItemSelectionModel
Para fazer isso, ou você escreveu você mesmo?
- Se você escrevi você mesmo, eu sugeriria usar
QItemSelectionModel
. - Se não o fizesse, parece que você deseja um algoritmo de classificação personalizado que exigiria a criação de um derivado
QTreeWidget
, se você estiver fazendo isso, também pode usarQTreeView
e um costumeQAbstractItemModel
.
Além disso, se você tiver duas visualizações dos mesmos dados, eu recomendaria o uso do Modelo/visualização estrutura e a QTreeView
.