qt多个对话框界面修改共用同一个结构体如何实现
时间: 2024-12-08 22:18:38 浏览: 20
在Qt中,如果你想要多个对话框共享相同的结构体,通常可以将这个结构体作为公共头文件中的成员,并在需要的地方包含这个头文件。以下是步骤:
1. **定义公共结构体**:
创建一个`MySharedStruct.h`文件,定义你的公共结构体,例如:
```cpp
// MySharedStruct.h
class MySharedStruct {
public:
int sharedField;
QString anotherField;
};
```
2. **包含在对话框类中**:
对于每个需要使用这个结构体的对话框类,比如`DialogA`, `DialogB`等,在它们的`.h`文件中包含`MySharedStruct`:
```cpp
#include "MySharedStruct.h"
class DialogA : public QDialog {
private:
MySharedStruct mySharedData;
... // 其他类定义
};
class DialogB : public QDialog {
private:
MySharedStruct mySharedData;
... // 其他类定义
};
```
3. **初始化和使用**:
在对话框的构造函数中初始化结构体,然后在各个窗口中通过`mySharedData`访问这些字段:
```cpp
DialogA::DialogA(QWidget* parent) : QDialog(parent), mySharedData() { ... }
void DialogA::doSomething() {
mySharedData.sharedField = 42;
}
DialogB::DialogB(QWidget* parent) : QDialog(parent), mySharedData() { ... }
void DialogB::displayFields() {
qDebug() << "sharedField: " << mySharedData.sharedField;
}
```
阅读全文