QRadioButton
1.类似QCheckBox
2.默认单选
3.布局器
4.QButtonGroup获取选中的Button
Widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include <QRadioButton>
#include <QVBoxLayout>
#include <QButtonGroup>
#include <QPushButton>
#include <QMessageBox>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
QRadioButton *rb1 = new QRadioButton("rb1");
QRadioButton *rb2 = new QRadioButton("rb2");
QRadioButton *rb3 = new QRadioButton("rb3");
//按钮组
QButtonGroup *group = new QButtonGroup(this);
group->setObjectName("group");
group->addButton(rb1);
group->addButton(rb2);
group->addButton(rb3);
//保存按钮
QPushButton *save = new QPushButton("Save");
QVBoxLayout *vb = new QVBoxLayout(this);
//遍历按钮组
for(int i = 0; i < group->buttons().size();i++)
{
vb->addWidget(group->buttons()[i]);
}
QObject::connect(save,&QPushButton::clicked,this,&Widget::Save);
vb->addWidget(save);
}
void Widget::Save()
{
//获取按钮组
QButtonGroup *group = this->findChild<QButtonGroup*>("group");
if(!group) return ;
//获取被选中的按钮
QRadioButton *but = (QRadioButton *)group->checkedButton();
if(!but)
{
QMessageBox::warning(this,"","Please checked!");
return;
}
QMessageBox::information(this,"",but->text());
}
Widget::~Widget()
{
delete ui;
}