写点什么

Qt | 按钮控件的使用 QCheckBox

作者:YOLO.
  • 2022 年 10 月 08 日
    河北
  • 本文字数:919 字

    阅读完需:约 3 分钟

Qt | 按钮控件的使用 QCheckBox

前言:

QCheckBox 提供了一个带文本标签的复选框,QCheckBox(复选框)和 QRadioButton(单选按钮)都是选项按钮,它们都可以在开(选中)或者关(未选中)状态之间切换。它们两个的区别是:单选按钮实现“多选一”;复选框实现“多选多”。

QCheckBox 类常用的方法:

  • setChecked():设置复选框的状态:True 表示选中,False 表示取消选中。

  • setText():设置复选框标签显示的文本。

  • text():返回复选框标签显示的文本。

  • isChecked():获取复选框是否被选中。

  • setTriState():设置复选框为一个三态复选框。

  • setCheckState():三态复选框的状态设置。

注: 三态,就是除了打勾和不打勾两个状态外,还有一个半选中状态,复选框的方框内填充了颜色,这个状态不常用。

QCheckBox 类的使用:

//动态创建两个QCheckBoxQCheckBox *checkbox1 = new QCheckBox("apple", this);QCheckBox *checkbox2 = new QCheckBox("orange", this);//连接复选框选中状态改变时出发的信号stateChanged()和对应的槽函数connect(checkBox1, SIGNAL(stateChanged(int)), this, SLOT(slotStateChanged_apple(int)));connect(checkBox2, SIGNAL(stateChanged(int)), this, SLOT(slotStateChanged_orange(int)));//槽函数的实现void Widget::slotStateChanged_apple(int state){    if(state == Qt::Checked){}        //选中    else if(state == Qt::Unchecked){}        //未选中}void Widget::slotStateChanged_orange(int state){    if(state == Qt::Checked){}        //选中    else if(state == Qt::Unchecked){}        //未选中}
复制代码

槽函数中很简单,判断参数 state 是否为选中状态,然后分别做对应的处理。

分别实现独占和非独占复选框:

实现非独占复选框:非独占的意思是一组复选框控件,可以支持多选。创建多个多选框控件,分别连接他们发射的状态改变信号和对应的槽函数,分别处理它们的槽函数,既可实现非独占的复选框。

实现独占复选框:独占的意思是一组复选框控件实现多选一。通过 setExclusive()函数设置按钮组的禁用单选(不支持单选)。

QButtonGroup *check_group = new QButtonGroup(this);check_group->setExclusive(true);//单选启动
复制代码

这样 button 组中的复选框,就被设置为独占模式,实现多选一。

发布于: 刚刚阅读数: 3
用户头像

YOLO.

关注

还未添加个人签名 2022.05.06 加入

还未添加个人简介

评论

发布
暂无评论
Qt | 按钮控件的使用 QCheckBox_qt_YOLO._InfoQ写作社区