在QSqlQueryModel模型中,是不具备排序能力的,必须重写其虚函数sort来实现排序,但是可以通过代理的方式来实现排序,具体实现方法核心代码如下:
queryModel = new QSqlQueryModel(this);
proxyModel = new QSortFilterProxyModel(this);
queryModel->setQuery(sql);
proxyModel->setSourceModel(queryModel);
tableView->setModel(proxyModel);
这样便能够实现点击tableView实现排序,若需要自定义的排序,也非常简单,继承QSortFilterProxyModel类,并重写lessThan函数即可!