我在QTreeWidget中有一个QTreeWidgetItems(带有子项)列表 . 我没有为我的数据使用模型 .
从我的应用程序中的另一个窗口,用户可以通过相同的数据集导航(以不同方式查看),然后第一个窗口中的QTreeWidget通过设置背景颜色突出显示该特定行 .
但是,当QTreeWidget在某些列具有相同值的列上排序时,未定义哪个项是第一个 . 当我然后使用其他窗口导航并设置项目的背景颜色时,相等的项目会自动交换到视图中 . 这看起来很奇怪 .
我怀疑这是由于QTreeWidget的排序算法,但有没有人知道可能的解决方法呢?
1 回答
你使用QItemSelectionModel这样做,还是你自己写的?
如果您自己编写,我建议使用
QItemSelectionModel
.如果你没有,听起来你想要一个自定义排序算法,需要创建派生的
QTreeWidget
,如果你这样做,你可能只需使用QTreeView和自定义QAbstractItemModel .此外,如果您有两个相同数据的视图,我强烈建议使用Model/View框架和
QTreeView
.