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

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

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

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

有帮助吗?

解决方案

你正在用吗 QItemSelectionModel 这样做,还是你自己写的?

  • 如果你自己写的话我建议使用 QItemSelectionModel.
  • 如果您没有,听起来您想要一个自定义排序算法,这需要创建一个派生的 QTreeWidget, ,如果你这样做,你不妨使用 QTreeView 和一个习惯 QAbstractItemModel.

另外,如果您对同一数据有两个视图,我强烈建议使用 模型/视图 框架和一个 QTreeView.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top