在QTreeWidget中稳定排序QTreeWidgetItems?

时间:2010-02-17 16:33:13

标签: c++ qt sorting qtreewidget qtreewidgetitem

我在QTreeWidget中有一个QTreeWidgetItems(带子节点)的列表。我没有为我的数据使用模型。

在我的应用程序的另一个窗口中,用户可以通过相同的数据集导航(以不同方式查看),第一个窗口中的QTreeWidget然后通过设置背景颜色突出显示该特定行。

但是,当QTreeWidget在某些列具有相同值的列上排序时,未定义哪个项目是第一个。当我然后使用其他窗口导航并设置项目的背景颜色时,相等的项目会自动交换到视图中。这看起来很奇怪。

我怀疑这是由于QTreeWidget的排序算法,但有没有人知道可能的解决方法?

1 个答案:

答案 0 :(得分:1)

您是否使用QItemSelectionModel执行此操作,还是自己编写?

  • 如果您自己编写,我建议您使用QItemSelectionModel
  • 如果你没有,听起来你想要一个自定义排序算法,需要创建一个派生的QTreeWidget,如果你这样做,你也可以只使用QTreeView和一个自定义QAbstractItemModel

另外,如果你有两个相同数据的视图,我强烈建议使用Model/View框架和QTreeView