C++Qt完整代码实现有两个QRadiobutton,横向排列,第一个QRadioButton控制第一个QgroupBox,第二个QRadioButton控制第二个QgroupBOx
时间: 2024-03-05 17:47:37 浏览: 78
以下是一个简单的示例代码,实现了您所要求的功能:
mainwindow.h
```cpp
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QRadioButton>
#include <QGroupBox>
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private slots:
void onRadioButton1Toggled(bool checked);
void onRadioButton2Toggled(bool checked);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
```
mainwindow.cpp
```cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 连接两个QRadioButton的信号与槽
connect(ui->radioButton_1, &QRadioButton::toggled, this, &MainWindow::onRadioButton1Toggled);
connect(ui->radioButton_2, &QRadioButton::toggled, this, &MainWindow::onRadioButton2Toggled);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::onRadioButton1Toggled(bool checked)
{
// 设置第一个QGroupBox的可见性
ui->groupBox_1->setVisible(checked);
}
void MainWindow::onRadioButton2Toggled(bool checked)
{
// 设置第二个QGroupBox的可见性
ui->groupBox_2->setVisible(checked);
}
```
mainwindow.ui
在Qt Designer中设计好界面,将两个QRadioButton和两个QGroupBox放置在合适的位置。
注意:需要将QGroupBox的visible属性设置为false,这样在程序启动时,两个QGroupBox都是不可见的。
```xml
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QRadioButton" name="radioButton_1">
<property name="text">
<string>RadioButton 1</string>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_1">
<property name="title">
<string>GroupBox 1</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2"/>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButton_2">
<property name="text">
<string>RadioButton 2</string>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="groupBox_2">
<property name="title">
<string>GroupBox 2</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3"/>
</widget>
</item>
</layout>
</widget>
</widget>
<resources/>
<connections/>
</ui>
```
这样就完成了两个QRadioButton控制两个QGroupBox的功能。
阅读全文