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

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

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

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

最佳答案

您是使用 QItemSelectionModel 还是自己编写?

  • 如果您自己编写,建议使用QItemSelectionModel
  • 如果您没有这样做,这听起来像您想要一种自定义排序算法,该算法需要创建一个派生的QTreeWidget,如果您这样做,则最好只使用 QTreeView 和一个自定义 QAbstractItemModel

  • 另外,如果您对同一数据有两个 View ,则强烈建议使用Model/View框架和QTreeView

    关于c++ - 在QTreeWidget中稳定排序QTreeWidgetItems?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2282450/

    10-11 22:46