0、前言:
本文根据吴健老师的QT教程所写,属于学习笔记,仅为备忘及心得,如有错误,还望指出,感谢。
1、Radio Button的运用
下图1为ui界面,Radio Button作为性别单选使用
然后使用Ctrl按键,选中两个Radio Button,右键在弹出的对话框中心选中Assign to button group——》New button group,如下图2所示。
在UI界面的右侧的对象浏览器(Object Inspector)中可找到新建的ButtonGroup,并改名为SexGroup,如下图3所示
并在属性编辑器中将其设置为互斥(exclusive),如下图4所示,完成后编译UI界面
,
最后再CPP界面,获取单选按钮对应的文本,代码如下
//获取单选按钮对应文本
QString sex= this->ui->SexGroup->checkedButton()->text();
具体原理如Help文档所示,大致意思为返回按键是否被按下,如果不是单选互斥按钮,则返回最后一个被按下的按钮。
此外,如需要将默认勾选修改,需要在按键的属性编辑框中,对checked一项进行勾选,注意,在建立RadioButton Group,并保持互斥关系后,两者UI界面默认勾选也遵循互斥原则。默认状态可存在两者均不勾选,单独勾选一个的状态。
2、Check Box的运用
check Box的使用方法与Radio Button 类似,先对其新建按键组,是否互斥看具体要求,我们这里新建其为InsGroup
然后在CPP界面使用以下代码进行获取
首先,需要获取多选按钮列表,再使用InsGroup长度属性,获取多选按钮组里面按钮的数量,遍历每个按钮是否被按下,注意,需要包含头文件
QList<QAbstractButton *>ins_list=this->ui->InsGroup->buttons();
QString ins;
for(int i=0;i<ins_list.length();i++)
{
QAbstractButton * che = ins_list.at(i);//C++中at类似数组,i为数组内编号
if(che->isChecked())//检测是否被按下
{
ins+=che->text()+",";
}