Component类里添加widget,添加button,添加connect ,分成头文件和源文件
时间: 2024-02-29 15:03:26 浏览: 105
好的,我来为你解答这个问题。
首先,我们需要定义一个 Component 类,该类中包含一个 QWidget 类型的指针,用于指向我们要添加的 widget。
Component.h 头文件内容如下:
```cpp
#ifndef COMPONENT_H
#define COMPONENT_H
#include <QWidget>
class Component : public QObject
{
Q_OBJECT
public:
explicit Component(QObject *parent = nullptr);
void addButton(QWidget *parentWidget);
private:
QWidget *m_widget;
};
#endif // COMPONENT_H
```
接着,我们在 Component.cpp 源文件中实现 Component 类的构造函数和 addButton() 函数。
```cpp
#include "Component.h"
#include <QPushButton>
Component::Component(QObject *parent)
: QObject(parent)
, m_widget(nullptr)
{
}
void Component::addButton(QWidget *parentWidget)
{
if (!m_widget) {
m_widget = new QWidget(parentWidget);
}
QPushButton *button = new QPushButton("Click me!", m_widget);
connect(button, &QPushButton::clicked, [](){
qDebug() << "Button clicked!";
});
}
```
在 addButton() 函数中,我们首先判断 m_widget 是否为空,如果为空,则创建一个 QWidget 类型的对象,并把它设置为 parentWidget 的子部件。然后,我们创建一个 QPushButton 对象,将其文本设置为 "Click me!",并将其设置为 m_widget 的子部件。最后,我们使用 connect() 函数连接 button 的 clicked() 信号与一个 lambda 表达式,该表达式会在按钮被点击时输出一条调试信息。
这就是将 widget 添加到 Component 类中的方法。如果你有其他问题或疑问,可以随时问我。
阅读全文