如何排序查看项目

时间:2015-01-15 00:24:12

标签: python qt model header pyqt

setSortingEnabled()设置为True,可以点击列标题名称对视图的项目进行排序:

tableView=QTableView()
tableView.setSortingEnabled(True) 

但即使设置了属性,视图也会显示未排序的项目。 为了对项目进行排序,必须单击标题。 问题:如何使视图继续并在单击标题之前对其项目进行排序。 因此视图从一开始就直接排序。

2 个答案:

答案 0 :(得分:4)

您可以使用QHeaderView.setSortIndicator(logicalIndex, order)

对于您的示例,这意味着调用tableView.horizontalHeader().setSortIndicator(0, Qt.AscendingOrder)按升序对第一列进行排序。

请注意,如果列已重新排序,则传入的logicalIndex可能与visualIndex不对应。 QHeaderView提供了在两者之间进行翻译的方法(但我认为你不太可能需要它)。

答案 1 :(得分:1)

要对QTableView()进行排序而不点击其标题(假设已设置tableView.setSortingEnabled(True)),请使用:

tableView.sortByColumn(0, Qt.AscendingOrder)