前言
本篇文章介绍Qt的单选按钮,就是QRadioButton
QRadioButton是一个选项按钮,可以打开(选中)或关闭(取消选中)。单选按钮通常向用户提供“众多之一”的选择。 在一组
单选按钮中,一次只能选中一个单选按钮; 如果用户选择另一个按钮,则先前选择的按钮将关闭。
使用条件
必须包含头文件QRadioButton
#include <QRadioButton>
必须添加widgets模块
QT += widgets
继承关系
QRadioButton继承类QAbstractButton
同样继承QAbstractButton的还有
- QCheckBox
- QPushButton
- QToolButton
我们主要讲QRadioButton
独占性
独占性是QAbstractButton子类特有的特性,对于继承自QAbstractButton的控件,独占性是指对于所有可选择的控件
,同一个父窗体或者按钮组下,同一时间只能选中一个控件,我们分析一下这句话:
- 必须是QAbstractButton子类
- 可选择的控件,首先独占性必须是可选择的控件
也就是这个属性必须是选中的。
- 独占性特性只是对同一个父窗体或者按钮组的其他控件来说,每个按钮组是独立的,不相互影响
autoExclusive
可以通过
bool autoExclusive() const;
获取当前控件是否具有独占性
对于继承自QAbstractButton的控件,默认只有QRadioButton是true,其他都是false
setAutoExclusive(bool)
可以通过
void setAutoExclusive(bool);
改变控件的独占性,看下面的窗口:
如果1234四个控件都设置为可选中,并且将3和4的独占性设置为true,如果1或者2选中的话,我们点击按钮的时候1或者2就不会在选中了,因为按钮此时独占。
按钮组
多个单选按钮可以放进一个按钮组中,这样,每个按钮组的单选按钮就可以实现多选一。
在设计器界面,选中需要放进一个按钮组的单选按钮,然后右键,选择指定到按钮组,新建按钮组。这个时候这几个单选按钮就在一个按钮组了。
选中事件
如果给每一个单选按钮添加一个选中事件可能比较麻烦,可以在代码中添加一个槽函数,然后让所有的单选按钮的clicked信号都关联到这个槽函数,这样在槽函数中通过判断单选按钮是否选中就可以了,下面是一个代码的例子
ui->setupUi(this);
connect(ui->radNon,SIGNAL(clicked()),this,SLOT(on_rad_clicked()));
connect(ui->radWin,SIGNAL(clicked()),this,SLOT(on_rad_clicked()));
connect(ui->radApp,SIGNAL(clicked()),this,SLOT(on_rad_clicked()));
on_rad_clicked();
注意:
- 需要在ui->setupUi(this)之后再连接信号和槽
- 需要连接以后调用一下槽函数,不然出始的选中不会执行槽函数
原文地址:https://blog.csdn.net/b1049112625/article/details/135817711
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_61507.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!