如何在列排序时保持QItemSelectionModel中的行选择?

0 投票
1 回答
659 浏览
提问于 2025-04-17 07:44

我在用 QItemSelectionModel 和 QTableView 让用户选择行。问题是,当用户点击某一列的标题来排序行的时候,之前选中的行就消失了,所有的行都显示出来了。我想知道怎么才能保持选中的行,只对这些行进行排序,而不是让所有的行都出现。

谢谢!
--Erin

1 个回答

0

这是我解决这个问题的方法:

  • 当选择了某些行时,把每个隐藏行的唯一ID放到一个列表里,然后把所有隐藏的行都隐藏起来。

  • 使用 self.connect(self.myHorizontalHeader, SIGNAL("sectionClicked(int)"), self.keepSelectionValues) 来捕捉用户点击列标题进行排序的事件。

  • 在 self.keepSelectionValue 里,检查每一行,如果它的唯一ID在隐藏行的列表中,就把这一行隐藏。

这样做可以有效地对非隐藏的行进行排序和显示,而不需要显示整个表格的所有行。

撰写回答