要在一个QSqlTableModel中显示多个数据库的数据,需要进行以下步骤:

  1. 创建多个 QSqlDatabase 对象,每个对象代表一个数据库连接。可以使用 QSqlDatabase::addDatabase() 函数创建多个连接,每个连接需要设置对应的数据库驱动、主机名、用户名、密码等信息。

  2. 打开每个数据库连接,可以使用 QSqlDatabase::open() 函数打开连接。

  3. 创建多个 QSqlTableModel 对象,每个对象代表一个数据库表格。使用 QSqlTableModel::setTable() 函数设置每个表格的名称。

  4. 设置每个 QSqlTableModel 对象的数据库连接,可以使用 QSqlTableModel::setDatabase() 函数设置数据库连接。

  5. 调用 QSqlTableModel::select() 函数查询每个表格的数据。

  6. 创建一个 QStackedWidget 对象,用于显示多个数据库表格的视图。

  7. 创建多个 QTableView 对象,每个对象用于显示一个表格的数据。将每个 QSqlTableModel 对象设置为对应的 QTableView 的模型。

  8. 将每个 QTableView 对象添加到 QStackedWidget 中。

以下是示例代码:

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // 创建第一个数据库连接
    QSqlDatabase db1 = QSqlDatabase::addDatabase("QMYSQL", "connection1");
    db1.setHostName("localhost");
    db1.setDatabaseName("database1");
    db1.setUserName("username1");
    db1.setPassword("password1");
    db1.open();

    // 创建第二个数据库连接
    QSqlDatabase db2 = QSqlDatabase::addDatabase("QMYSQL", "connection2");
    db2.setHostName("localhost");
    db2.setDatabaseName("database2");
    db2.setUserName("username2");
    db2.setPassword("password2");
    db2.open();

    // 创建第一个表格的模型
    QSqlTableModel model1(nullptr, db1);
    model1.setTable("table1");
    model1.select();

    // 创建第二个表格的模型
    QSqlTableModel model2(nullptr, db2);
    model2.setTable("table2");
    model2.select();

    // 创建 QStackedWidget
    QStackedWidget stackedWidget;

    // 创建第一个表格的视图
    QTableView tableView1;
    tableView1.setModel(&model1);
    stackedWidget.addWidget(&tableView1);

    // 创建第二个表格的视图
    QTableView tableView2;
    tableView2.setModel(&model2);
    stackedWidget.addWidget(&tableView2);

    stackedWidget.show();

    return app.exec();
}

注意:在实际使用中,需要根据自己的情况修改数据库连接的参数、表格名称等

qt 自定义QSqlTableModel显示多个数据库数据

原文地址: https://www.cveoy.top/t/topic/hIlY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录