两个QRadioButton和八个QPushButton在QGroupBox中纯代码实现布局
时间: 2024-10-07 19:01:15 浏览: 27
QGroupBox和QButtonGroup.rar
在Qt中,你可以使用`QRadioButton`和`QPushButton`以及`QGroupBox`来创建这样的布局。下面是一个基本的纯代码实现示例:
```cpp
#include <QApplication>
#include <QWidget>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QRadioButton>
#include <QPushButton>
#include <QGroupBox>
class MyWidget : public QWidget {
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent) {
// 创建QRadioButton和QPushButton
QRadioButton radioButton1("Option 1");
QPushButton button1("Button 1");
QPushButton button2("Button 2");
// ... (重复此过程直到第八个按钮)
// 创建QGroupBox
QGroupBox groupBox("Group");
QVBoxLayout *groupBoxLayout = new QVBoxLayout();
groupBoxLayout->addWidget(&radioButton1);
groupBoxLayout->addStretch(); // 空白区域让按钮均匀分布
for (int i = 0; i < 8; ++i) { // 将8个QPushButton添加到groupBoxLayout
groupBoxLayout->addWidget(buttons[i]);
}
groupBox.setLayout(groupBoxLayout);
// 创建水平布局,并将groupBox添加进去
QHBoxLayout *mainLayout = new QHBoxLayout();
mainLayout->addWidget(&groupBox);
setLayout(mainLayout); // 设置窗口布局
}
private:
QPushButton buttons[8]; // 存储所有QPushButton实例
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
```
在这个例子中,我们首先创建了QRadioButton和QPushButton的实例,然后在QGroupBox内部使用VBoxLayout管理它们。最后,在主窗口上使用水平布局(QHBoxLayout)放置这个QGroupBox。
阅读全文