上一篇博文中【传送门】已经实现了Qt对SQLite的基本操作方法。如果我们有在Qt中显示SQLite数据库数据的需求,QTableView是最佳的选择,不同于QTableWidget的是,它可以链接到外部数据库,从而在QTableView中操作外部数据库。
在上一篇源码的基础上,需要在头文件头包含
#include <QSqlQueryModel>
并在主界面中加入一个tableview,界面变成以下这样。我将要在下面的tabview中显示数据库中的数据。
上一篇源码中,点击【读取该表内所有记录】后,程序将会选择表名中设置的表,然后读出所有数据打印到调试窗口。现在我们重写【读取该表内所有记录】按钮的程序,使其功能变为将数据库中指定表的内容显示在tableview中。
重写如下,其关键在于model->setQuery这句,其功能和上篇中的sql_q->exec(QString)一样,都是运行组好的SQLite命令。
//显示所选表所有内容
void MainWindow::on_pushButton_4_clicked()
{
QString cmd;
QSqlQueryModel *model;
model = new QSqlQueryModel(this);
cmd += "select * from ";
cmd += ui->lineEdit->text();
model->setQuery(cmd);
ui->tableView->setModel(model);
}
运行结果如下,与预期相符。