在QWidget之前的main创建实例,怎么在QWidget中调用
时间: 2024-05-06 11:18:16 浏览: 93
可以将main创建的实例作为QWidget的参数进行传递,或者将实例定义为QWidget的成员变量。这样,在QWidget中就可以直接调用实例的方法或访问其属性了。具体实现方法如下:
方式一:将实例作为参数传递
在main函数中创建实例,将其作为参数传递给QWidget的构造函数:
```cpp
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyClass myInstance;
MyWidget w(&myInstance);
w.show();
return a.exec();
}
```
在MyWidget类的构造函数中接收实例并保存:
```cpp
MyWidget::MyWidget(MyClass* instance, QWidget *parent) : QWidget(parent), m_instance(instance)
{
// ...
}
```
现在,在MyWidget中就可以使用m_instance来调用MyClass的方法或访问其属性了。
方式二:将实例定义为QWidget的成员变量
在MyWidget类中定义一个MyClass类型的成员变量,并在构造函数中初始化:
```cpp
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = nullptr);
private:
MyClass m_instance;
// ...
};
MyWidget::MyWidget(QWidget *parent) : QWidget(parent), m_instance()
{
// ...
}
```
现在,在MyWidget中就可以直接使用m_instance来调用MyClass的方法或访问其属性了。
阅读全文