我有一个 QTableView
,其中填充了 QSqlQueryModel
。我试图根据检查的 header 对表进行排序,但是当我按下它们时没有任何反应。我使用了函数sortByColumn()
问题是结果完全相同,当我单击标题时排序不起作用。
我究竟做错了什么?
Log cnn;
QSqlQueryModel *modal=new QSqlQueryModel();
QSqlQuery *qry=new QSqlQuery(cnn.mydb);
qry->prepare("select *from log");
qry->exec();
modal->setQuery(*qry);
ui->tableView->setModel(modal);
ui->tableView->setAlternatingRowColors(true);
ui->tableView->setSortingEnabled(true);
ui->tableView->sortByColumn(4,Qt::AscendingOrder);//4 indicate the 4th column
最佳答案
而且我还使用 QSortFilterProxyModel 解决了我的问题。
Log cnn;
QSqlQueryModel *modal=new QSqlQueryModel(this);
QSqlQuery *qry=new QSqlQuery(cnn.mydb);
qry->prepare("select *from AccessLog");
qry->exec();
modal->setQuery(*qry);
QSortFilterProxyModel *m=new QSortFilterProxyModel(this);
m->setDynamicSortFilter(true);
m->setSourceModel(modal);
ui->tableView->setModel(m);
ui->tableView->setSortingEnabled(true);
关于c++ - 如果单击标题 View ,如何按 TableView 中的列对数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22652038/