将setSortingEnabled()
设置为True
,可以点击列标题名称对视图的项目进行排序:
tableView=QTableView()
tableView.setSortingEnabled(True)
但即使设置了属性,视图也会显示未排序的项目。 为了对项目进行排序,必须单击标题。 问题:如何使视图继续并在单击标题之前对其项目进行排序。 因此视图从一开始就直接排序。
答案 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)