QML 使用自定义 QSqlTableModel 在 TableView 中显示多个数据库数据
QML 使用自定义 QSqlTableModel 在 TableView 中显示多个数据库数据
要在一个 TableView 中显示多个数据库数据,您可以使用多个自定义的 QSqlTableModel,并将它们连接到同一个 TableView 上。
以下是一个示例代码,展示了如何使用两个自定义的 QSqlTableModel 在一个 TableView 中显示两个数据库数据:
#include <QApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlTableModel>
#include <QTableView>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 连接第一个数据库
QSqlDatabase db1 = QSqlDatabase::addDatabase("QSQLITE", "connection1");
db1.setDatabaseName("path/to/first/database.db");
if (!db1.open()) {
qDebug() << "Cannot open database connection1.";
return 1;
}
// 创建第一个自定义的 QSqlTableModel
QSqlTableModel model1(nullptr, db1);
model1.setTable("table1");
model1.select();
// 连接第二个数据库
QSqlDatabase db2 = QSqlDatabase::addDatabase("QSQLITE", "connection2");
db2.setDatabaseName("path/to/second/database.db");
if (!db2.open()) {
qDebug() << "Cannot open database connection2.";
return 1;
}
// 创建第二个自定义的 QSqlTableModel
QSqlTableModel model2(nullptr, db2);
model2.setTable("table2");
model2.select();
// 创建一个 TableView 并设置两个模型
QTableView tableView;
tableView.setModel(&model1);
tableView.setAlternatingRowColors(true);
tableView.show();
// 添加第二个模型到 TableView
tableView.setModel(&model2);
return app.exec();
}
在上面的示例中,我们首先连接了两个不同的数据库,并为每个数据库创建一个自定义的 QSqlTableModel。然后,我们将第一个模型设置为 TableView 的模型,并显示 TableView。最后,我们将第二个模型设置为 TableView 的模型,这样就可以在同一个 TableView 中显示两个数据库的数据了。
请注意,在这个示例中,我们使用了 SQLite 数据库,您需要将数据库的路径替换为您实际的数据库路径,并确保数据库驱动程序正确地加载。
原文地址: https://www.cveoy.top/t/topic/prpY 著作权归作者所有。请勿转载和采集!