在 Qt 中,使用 QSqlTableModel 可以方便地将数据库数据与视图进行绑定。如果需要在一个 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/prpL 著作权归作者所有。请勿转载和采集!

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