本篇文章介绍Qt的单选按钮,就是QRadioButton
QRadioButton是一个选项按钮,可以打开(选中)或关闭(取消选中)。单选按钮通常向用户提供“众多之一”的选择。 在一组
单选按钮中,一次只能选中一个单选按钮; 如果用户选择另一个按钮,则先前选择的按钮将关闭。
必须包含头文件QRadioButton
#include <QRadioButton>
必须添加widgets模块
QT += widgets
QRadioButton继承类QAbstractButton
同样继承QAbstractButton的还有
我们主要讲QRadioButton
独占性是QAbstractButton子类特有的特性,对于继承自QAbstractButton的控件,独占性是指对于所有可选择的控件
,同一个父窗体或者按钮组下,同一时间只能选中一个控件,我们分析一下这句话:
也就是这个属性必须是选中的。
可以通过
bool autoExclusive() const;
获取当前控件是否具有独占性
对于继承自QAbstractButton的控件,默认只有QRadioButton是true,其他都是false
可以通过
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();
注意: