qt 多个button如何封装
时间: 2023-07-13 19:29:57 浏览: 131
可以将多个按钮封装到一个自定义的 QWidget 控件中,并在控件的构造函数中创建相应的按钮,并为每个按钮设置相应的信号和槽函数。这样可以将多个按钮的逻辑代码封装到一个控件中,方便在其他地方重复使用。
以下是一个简单的例子:
```cpp
class ButtonGroup : public QWidget
{
Q_OBJECT
public:
ButtonGroup(QWidget *parent = nullptr) : QWidget(parent)
{
QPushButton *button1 = new QPushButton(tr("Button 1"), this);
QPushButton *button2 = new QPushButton(tr("Button 2"), this);
connect(button1, &QPushButton::clicked, this, &ButtonGroup::onButton1Clicked);
connect(button2, &QPushButton::clicked, this, &ButtonGroup::onButton2Clicked);
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(button1);
layout->addWidget(button2);
}
signals:
void button1Clicked();
void button2Clicked();
private slots:
void onButton1Clicked() { emit button1Clicked(); }
void onButton2Clicked() { emit button2Clicked(); }
};
```
在该例子中,我们创建了一个名为 `ButtonGroup` 的自定义控件,它包含了两个按钮。每个按钮都连接了相应的信号和槽函数,当按钮被点击时,会发出相应的信号。同时,我们还定义了两个信号 `button1Clicked` 和 `button2Clicked`,它们分别代表按钮1和按钮2被点击的信号。通过使用该控件,我们可以方便地将多个按钮封装起来,而不必在每个使用场景中都编写相同的逻辑代码。
阅读全文