C++Qt不用UI的形式完整代码实现有两个QRadiobutton,横向排列,第一个QRadioButton控制第一个QgroupBox,第二个QRadioButton控制第二个QgroupBOx
时间: 2024-03-05 18:47:45 浏览: 64
好的,这是一个简单的C++ Qt程序,实现了两个QRadioButton,横向排列,第一个QRadioButton控制第一个QGroupBox,第二个QRadioButton控制第二个QGroupBox。
```cpp
#include <QApplication>
#include <QWidget>
#include <QRadioButton>
#include <QGroupBox>
#include <QVBoxLayout>
#include <QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建主窗口
QWidget *window = new QWidget();
window->setWindowTitle("RadioButton Example");
// 创建两个 QRadioButton
QRadioButton *radioButton1 = new QRadioButton("Group1");
QRadioButton *radioButton2 = new QRadioButton("Group2");
// 创建两个 QGroupBox
QGroupBox *groupBox1 = new QGroupBox();
QGroupBox *groupBox2 = new QGroupBox();
// 设置 QGroupBox 的标题
groupBox1->setTitle("Group 1");
groupBox2->setTitle("Group 2");
// 创建一个 QVBoxLayout,用于放置 groupBox1
QVBoxLayout *layout1 = new QVBoxLayout();
layout1->addWidget(new QLabel("Group 1 Content"));
groupBox1->setLayout(layout1);
// 创建一个 QVBoxLayout,用于放置 groupBox2
QVBoxLayout *layout2 = new QVBoxLayout();
layout2->addWidget(new QLabel("Group 2 Content"));
groupBox2->setLayout(layout2);
// 创建一个 QHBoxLayout,用于放置两个 QRadioButton 和两个 QGroupBox
QHBoxLayout *mainLayout = new QHBoxLayout();
mainLayout->addWidget(radioButton1);
mainLayout->addWidget(groupBox1);
mainLayout->addWidget(radioButton2);
mainLayout->addWidget(groupBox2);
// 设置布局
window->setLayout(mainLayout);
// 当 radioButton1 被选中时,显示 groupBox1,隐藏 groupBox2
QObject::connect(radioButton1, &QRadioButton::clicked, [groupBox1, groupBox2]()
{
groupBox1->show();
groupBox2->hide();
});
// 当 radioButton2 被选中时,显示 groupBox2,隐藏 groupBox1
QObject::connect(radioButton2, &QRadioButton::clicked, [groupBox1, groupBox2]()
{
groupBox1->hide();
groupBox2->show();
});
// 显示窗口
window->show();
// 运行程序
return app.exec();
}
```
希望这个例子能够帮助你!
阅读全文