стабильная сортировка QTreeWidgetItems в QTreeWidget? - PullRequest
2 голосов
/ 17 февраля 2010

У меня есть список QTreeWidgetItems (с детьми) в QTreeWidget. Я не использую модель для своих данных.

Из другого окна моего приложения пользователь может перемещаться по одному и тому же набору данных (если смотреть по-разному), и QTreeWidget в первом окне затем выделяет эту конкретную строку, устанавливая цвет фона.

Однако, когда QTreeWidget сортируется по столбцу, в котором некоторые элементы имеют одинаковое значение, неизвестно, какой элемент является первым. Когда я затем перемещаюсь, используя другое окно, и цвет фона элемента установлен, равные элементы меняются местами автоматически. Это выглядит очень странно.

Я подозреваю, что это связано с алгоритмом сортировки QTreeWidget, но кто-нибудь знает возможный обходной путь к этому?

1 Ответ

1 голос
/ 17 февраля 2010

Вы используете QItemSelectionModel, чтобы сделать это, или вы написали это самостоятельно?

  • Если бы вы написали это самостоятельно, я бы предложил использовать QItemSelectionModel.
  • Если вы этого не сделали, звучит так, как будто вы хотите собственный алгоритм сортировки, который потребует создания производного QTreeWidget, если вы делаете это, вы можете просто использовать QTreeView кастом QAbstractItemModel.

Кроме того, если у вас есть два представления одних и тех же данных, я НАСТОЯТЕЛЬНО рекомендовал бы использовать Model / View framework и QTreeView.

...