如何在列排序时保持QItemSelectionModel中的行选择?
我在用 QItemSelectionModel 和 QTableView 让用户选择行。问题是,当用户点击某一列的标题来排序行的时候,之前选中的行就消失了,所有的行都显示出来了。我想知道怎么才能保持选中的行,只对这些行进行排序,而不是让所有的行都出现。
谢谢!
--Erin
1 个回答
0
这是我解决这个问题的方法:
当选择了某些行时,把每个隐藏行的唯一ID放到一个列表里,然后把所有隐藏的行都隐藏起来。
使用 self.connect(self.myHorizontalHeader, SIGNAL("sectionClicked(int)"), self.keepSelectionValues) 来捕捉用户点击列标题进行排序的事件。
在 self.keepSelectionValue 里,检查每一行,如果它的唯一ID在隐藏行的列表中,就把这一行隐藏。
这样做可以有效地对非隐藏的行进行排序和显示,而不需要显示整个表格的所有行。