qt在多个设计师界面使用数据库
时间: 2023-08-22 18:08:57 浏览: 143
在 中,可以使用多个设计师界面来显示和编辑不同的窗口。例如,在一个应用程序中,可能有一个主窗口、一个设置窗口、一个帮助窗口等等。每个窗口都可以使用自己的设计师界面来进行布局和设计。如果这些窗口需要使用同一个数据库,可以使用如下方法来实现:
1. 在 main.cpp 中创建全局的 QSqlDatabase 对象,然后在程序启动时打开数据库连接:
```c++
#include <QApplication>
#include <QtSql>
QSqlDatabase db;
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 打开数据库连接
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("mydatabase.db");
if (!db.open()) {
qDebug() << "Failed to open database.";
return -1;
}
// 创建主窗口并显示
MainWindow w;
w.show();
return a.exec();
}
```
2. 在每个设计师界面中,将该界面的 QSqlTableModel 绑定到全局的 QSqlDatabase 对象上:
- 打开设计师界面并进入 "编辑信号与槽" 模式。
- 在 "对象查看器" 中选择该界面的 QSqlTableModel 对象,并在 "属性编辑器" 中设置其 "数据库" 属性为全局的 QSqlDatabase 对象(例如,设置其值为:`::db`)。
- 在 "信号与槽编辑器" 中添加需要的信号和槽。
如下图所示:
![Qt Designer](https://img-blog.csdn.net/20180820141129953?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FwcGhvc3RpbmdfY3Nkbi9nZXRfY29udGVudF9jcmVhdGVfYnVpbGRfc2VydmVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85)
在上面的示例中,我们将每个设计师界面中的 QSqlTableModel 绑定到全局的 QSqlDatabase 对象上,这样每个界面在显示和编辑数据时都会使用同一个数据库连接。
阅读全文