QTreeWidget 中的稳定排序 QTreeWidgetItems?
-
21-09-2019 - |
题
我在 QTreeWidget 中有一个 QTreeWidgetItems(带有子项)的列表。我的数据不使用模型。
从我的应用程序中的另一个窗口,用户可以导航同一组数据(以不同的方式查看),然后第一个窗口中的 QTreeWidget 通过设置背景颜色突出显示该特定行。
然而,当 QTreeWidget 在某些项目具有相同值的列上排序时,未定义哪个项目是第一个。然后,当我使用另一个窗口导航并设置项目的背景颜色时,相同的项目会自动在视图中交换位置。这看起来很奇怪。
我怀疑这是由于 QTreeWidget 的排序算法造成的,但是有人知道可能的解决方法吗?
解决方案
你正在用吗 QItemSelectionModel
这样做,还是你自己写的?
- 如果你自己写的话我建议使用
QItemSelectionModel
. - 如果您没有,听起来您想要一个自定义排序算法,这需要创建一个派生的
QTreeWidget
, ,如果你这样做,你不妨使用QTreeView
和一个习惯QAbstractItemModel
.
另外,如果您对同一数据有两个视图,我强烈建议使用 模型/视图 框架和一个 QTreeView
.
不隶属于 StackOverflow