如何排序查看项目

alp*_*ric 2 python qt model header pyqt

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

tableView=QTableView()
tableView.setSortingEnabled(True) 
Run Code Online (Sandbox Code Playgroud)

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

thr*_*les 5

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

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

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