Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top