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?

Foi útil?

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 usar QTreeView e um costume QAbstractItemModel.

Além disso, se você tiver duas visualizações dos mesmos dados, eu recomendaria o uso do Modelo/visualização estrutura e a QTreeView.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top