以下是C++中QSqlTableModel从数据库获取值显示到QTableView的完整代码示例:
#include <QtWidgets>
#include <QtSql>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("test.db");
if (!db.open()) {
QMessageBox::critical(nullptr, "Error", "Could not connect to database.");
return -1;
}
// 创建表格并插入一些数据
QSqlQuery query(db);
query.exec("CREATE TABLE IF NOT EXISTS users (name VARCHAR(255), age INTEGER)");
query.exec("INSERT INTO users VALUES('Alice', 25)");
query.exec("INSERT INTO users VALUES('Bob', 30)");
query.exec("INSERT INTO users VALUES('Charlie', 35)");
// 创建模型并设置查询
QSqlTableModel model(nullptr, db);
model.setTable("users");
model.select();
// 创建视图并设置模型
QTableView view;
view.setModel(&model);
view.show();
return app.exec();
}
这个程序首先创建了一个SQLite数据库连接,并使用QSqlQuery执行了一些创建表格和插入数据的SQL语句。然后,它创建了一个QSqlTableModel,并使用setTable()方法将其设置为刚才创建的表格。最后,它创建了一个QTableView,并使用setModel()方法将其设置为上面的模型。
当程序运行时,QTableView将显示从数据库查询得到的数据。