当我单击列标题时,需要对表中的列进行排序。 但是现在我不能了,那是我的桌子:
如果单击标题,则没有任何操作。
那是我的c ++ QT代码:
hitTest
我该怎么办?
答案 0 :(得分:5)
您必须做两件事:
启用视图的sortingEnabled
属性,以便用户可以通过单击水平标题来控制顺序。
使用QSortFilterProxyModel
处理订单关系。
void showTable()
{
connOpen();
QSqlQueryModel * myModel=new QSqlQueryModel(ui->tableView);
QSqlQuery select;
if (!select.exec("select * from tab")) {
QMessageBox::critical(this, tr("Error"), select.lastError().text());
}
else {
myModel->setQuery(select);
QSortFilterProxyModel *proxyModel = new QSortFilterProxyModel(myModel); // create proxy
proxyModel->setSourceModel(myModel);
ui->tableView->setSortingEnabled(true); // enable sortingEnabled
ui->tableView->setModel(proxyModel);
}
connClose();
}
答案 1 :(得分:1)
您可以通过以下方式启用排序:
use Illuminate \ Pagination \ Paginator;
public function boot ()
{
Paginator::useBootstrap();
}
对我有用。我使用的是qt 5.15和QTableWidget而不是QTableView。
以下是您的代码示例:
filesTable->setSortingEnabled(true);
创建表后,可以添加此属性。此方法是从QTableWidget类继承的。