下面是一个简单的使用QSqlTableModel的例子:
#include <QtWidgets>
#include <QtSql>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 连接数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(":memory:"); // 创建一个内存数据库
if (!db.open()) {
qDebug() << "Failed to open database.";
return -1;
}
// 创建表格并插入数据
QSqlQuery query;
query.exec("CREATE TABLE contacts(id INT PRIMARY KEY, name TEXT, email TEXT)");
query.exec("INSERT INTO contacts VALUES(1, 'Alice', 'alice@example.com')");
query.exec("INSERT INTO contacts VALUES(2, 'Bob', 'bob@example.com')");
// 创建TableModel
QSqlTableModel model;
model.setTable("contacts");
model.select();
// 创建TableView并将model与之关联
QTableView view;
view.setModel(&model);
view.show();
return app.exec();
}
在这个例子中,我们首先连接了一个内存数据库,并创建了一张名为”contacts”的表格。然后,我们通过QSqlTableModel来操作这个表格,将其与QTableView视图部件进行关联,并显示出来。
当我们运行程序时,就能看到一个包含两条记录的表格视图。如果我们想要修改某一条记录,只需要双击该单元格进行编辑即可。如果想要添加或删除记录,则可以通过调用QSqlTableModel的insertRows()/removeRows()方法实现。