model->setEditStrategy(QSqlTableModel::OnRowChange); if(!filter.isEmpty())model->setFilter(filter);
model->setSort(0,Qt::DescendingOrder); model->select();
table.view->setModel(model);
table.view->resizeColumnsToContents();//表格列宽⾃适应调整 tableView->verticalHeader()->setHidden(true);//左侧⾏号隐藏#endif }
第⼆⽅式,定义QSqlTableModel指针,设置过滤条件、显⽰表格、排序⽅式也可实现表格的显⽰。我使⽤过程中两点注意事项:1,前⾯使⽤QSqlTableModel时,先对其进⾏继承后再利⽤。作为⼩⽩⼀枚,当时觉得QSqlTableMode是抽象类,看来还需要认知下什么叫做抽象类。
2,以前显⽰表格的时候,每列专门设置列宽⽤来显⽰不同的列。实际只需要调⽤resizeColumnsToContents函数,就可以⾃适应调整显⽰的列宽。
model = new QSqlTableModel(m_tableView,currDatabase());
⼆、获取QTableView单元格内容
代码如下,代码中tbIP为QTableView对象,下述代码就可以获取当前QTableview对象单元格(当前⾏,packages列)的内容。另,如果修改单元格内容,则需要利⽤上述第⼆种表格显⽰⽅式。
QSqlTableModel *model=(QSqlTableModel *)ui->tbIP->model();
qDebug()<<\"cur value\"<record(index.row()).value(\"packages\").toString();