QRadioButton基础
本文主要根据QT官方帮助文档以及日常使用,简单的介绍一下QRadioButton的功能以及使用
简介
根据QT的官方帮助文档中的形容,QRadioButton
是一个用来表示"One of many"的按钮,也就是单选按钮即在一堆按钮之间只能选择一个,如果你点击了几个中的另外一个,之前那个被选中的就会取消选中。
QRadioButton
和QPushButton
一样,都是有文字和图标的。
autoExclusive
QRaidoButton
默认是autoExclusive的,如果你要改变这个属性,调用setAutoExclusive
这个函数来设置。这个属性代表如果几个QRadioButton是同一个父窗口的话,那么你只能在几个按钮里面选择一个;
如果要让多个QRadioButton能够选择多个,你有如下几种方法:
-
最简单直接办法就是把这几个QRadioButton放在不同的Widget里
-
调用setAutoExclusive,将这个属性设置成false
ui->radioButton->setAutoExclusive(false);
-
将按钮分组的放在QButtonGroup中
#include <QButtonGroup> QButtonGroup m_butonGroup; QButtonGroup m_buttonGroup_2; m_group.addButton(ui->radioButton); m_group_2.addButton(ui->radioButton_2); m_group_2.addButton(ui->radioButton_3);
信号和槽
你可以连接槽函数toggled(bool checked)
或者clicked(bool checked)
这两个函数,来在radioButton状态改变时,进行对应的操作;
这个toggled信号,会在按钮的状态改变时触发,比如说鼠标点击按钮的时候会触发、setChecked也会触发,而clicked这个信号,就只会在鼠标点击按钮的时候才会触发。
样式的设计
这个按钮和其他的按钮的样式基本一样,差别在于,如果你想要设置QRadioButton的小圆圈部分的话,你需要这样:
QRadioButton
{
/*正常的样式*/
}
QRadioButton:indicator
{
/*这里就是旁边的小圆圈的部分样式*/
}