目录
代码示例: 选择性别
代码示例: click,press,release,toggled 的区别
代码示例: 单选框分组
QRadioButton 是单选按钮可以让我们在多个选项中选择一个
作为 QAbstractButton 和 Qwidget 的子类,上面介绍的属性和用法,对于 QRadioButton
同样适用.
QAbstractButton 中和 ORadioButton关系较大的属性
代码示例: 选择性别
1)在界面上创建一个label,和3个单选按钮
radioButton_female , radioButton_other
设置的文本如下图.3个单选按钮的 objectName 分别为 radioButton_male

2)修改 widget.cpp,编辑三个 QRadioButton 的 slot 函数
3)运行程序可以看到随着选择不同的单选按钮,label 中的提示文字就会随之变化
4)当前代码中如果程序启动,则不会选择任何选项
可以修改代码让程序启动默认选中性别男
5)当前代码中,也可以禁用“其他”被选中
修改 widget.cpp 的构造函数
此时运行程序,即可看到性别男 已经被选中了
运行程序,可以看到,点击“其他"按钮的时候,虽然不会被选中,但是可以触发点击事件,使上面的 label
显示性别为其他.
使用 setEnabled 是更彻底的禁用按钮的方式此时该按钮无法被选中,也无法响应任何输入
效果一样 ui->radioButton_other->setEnabled(false); ui->radioButton_other->setDisabled(true);
代码示例: click,press,release,toggled 的区别
clicked 表示一次"点击"
pressed 表示鼠标“按下"
released 表示鼠标"释放
toggled 表示按钮状态切换
1)在界面上创建四个单选按钮
objectName 分别为 radioButton ,radioButton_2,radioButton_3
radioButton_4
2)给 1 创建 clicked 槽函数,给 2 创建 pressed 槽函数,给 3 创建 released 槽函数
给 4 创建 toggled 槽函数.
3)运行程序,可以看到
clicked 是一次鼠标按下+鼠标释放触发的
pressed 是鼠标按下触发的
released 是鼠标释放触发的
toggled 是 checked 属性改变时触发的
总的来说,toggled 是最适合 QRadioButton 的
代码示例: 单选框分组
1)在界面上创建6个单选框用来模拟麦当劳点餐界面
objectName 分别为 radioButton 到 radioButton_6
此时直接运行程序,可以看到,这六个 ORadioButton之间都是排他的
我们希望每一组内部来控制排他,但是组和组之间不能排他
2)引入QButtonGroup 进行分组
修改 widget.cpp
再次执行程序可以看到可以按照正确的分组方式来完成排他了