在PyQt模型中按多列排序

时间:2012-03-04 17:56:38

标签: python sql sorting pyqt qsqltablemodel

我想在基于模型/视图的PyQt应用程序中使用SQL等效的PyQt语句:

SELECT * FROM table ORDER BY foo, bar

如何按QSqlTableModel中的多个列进行排序,尤其是setSort()接受单个column参数?

1 个答案:

答案 0 :(得分:1)

似乎有setSort()的替代品,称为setFilter()。 来自PyQt文档:

  

QSqlTableModel.setFilter(self,QString filter)

     

将当前过滤器设置为过滤。

     

过滤器是SQL WHERE子句,没有关键字WHERE(for   例如,name ='Josephine')。

Ergo,这解决了这个问题:

fooModel.setFilter("never_zero != 0 ORDER BY foo, bar")

never_zero字段(惊讶,惊讶)永远不会为零。