1. 在ui界面添加控件radioButton
2. 添加头文件 .cpp
#include <QButtonGroup>
3. 声明按钮组及槽函数 .h
private:
QButtonGroup *m_btnGroup1;
private slots:
void radioButtonSlots();
4. 为按钮组添加按钮,及连接信号与槽 .cpp
//构造函数中
//为按钮组添加按钮控件
m_btnGroup1 = new QButtonGroup(this);
m_btnGroup1->addButton(ui.radioButton_1, 0); //将radioButton_1放在第0个位置
m_btnGroup1->addButton(ui.radioButton_2, 1);
m_btnGroup1->addButton(ui.radioButton_3, 2);
m_btnGroup1->addButton(ui.radioButton_4, 3);
//ui.radioButton_1->setChecked(1); //默认值
connect(ui.radioButton_1, SIGNAL(clicked(bool)), this, SLOT(radioButtonSlots()));
connect(ui.radioButton_2, SIGNAL(clicked(bool)), this, SLOT(radioButtonSlots()));
connect(ui.radioButton_3, SIGNAL(clicked(bool)), this, SLOT(radioButtonSlots()));
connect(ui.radioButton_4, SIGNAL(clicked(bool)), this, SLOT(radioButtonSlots()));
5. 写槽函数 .cpp
//法一 if...else..
void QtGuiImageProcess::radioButtonSlots()
{
if (m_btnGroup1->checkedId() == 0) //选中第一个单选框
{
......
}
else if (m_btnGroup1->checkedId() == 1)
{
......
}
else if (m_btnGroup1->checkedId() == 2)
{
......
}
else
{
......
}
}
//法二 switch ... case ...
void QtGuiImageProcess::radioButtonSlots()
{
//在 switch 外声明变量
switch (m_btnGroup1->checkedId())
{
case 0:
.......
break;
case 1:
...
break;
case 2:
...
break;
case 3:
...
break;
}
}
设置按钮默认选中
在ui中勾上checked
取消默认选中
取消勾选ui中的checked没有用…,在构造函数中用以下语句
ui.radioButton_1->setCheckable(false);
ui.radioButton_1->setCheckable(true);