按钮控件之2---QCheckBox 复选按钮/复选框控件

本文聚焦于Qt框架中的QCheckBox复选框控件,详细介绍其三种状态:未选中、选中和部分选中。阐述了QCheckBox类的成员、信号,以及各状态的含义、表现和切换方式,还提及启用第三状态的方法,助读者理解应用该控件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QCheckBox是Qt框架中常用的复选框控件,它提供了三种不同的状态:未选中、选中和部分选中。本文将详细介绍这三种状态的含义、使用方法和代码示例,帮助读者更好地理解和应用QCheckBox控件。

一、QCheckBox 类的成员比较简单, 如下所示
①、 tristate: bool 访问函数: bool isTristate() const; void setTristate(bool y=true);
该属性保存复选按钮是否为三态按钮,默认为 false。 注意:属性的设置函数 setTristate
只能设置此按钮具有三态按钮的形式,但不能使该按钮呈现出第三种状态,即按钮前
面的小方框内不会有小黑方框的填充,但点击该按钮,会在三种状态间变换。 设置按
钮的状态应使用下面介绍的成员函数 setCheckState()。
②、 QCheckBox(QWidget* parent = Q_NULLPTR); //构造函数
QCheckBox(const QString &text , QWidget* parent = Q_NULLPTR);
③、 Qt::CheckState checkState() const; //返回复选框的选中状态。
④、 void setCheckState(Qt::CheckState state);
设 置 复 选 按 钮 的 状 态 为 state , 该 函 数 可 设 置 复 选 按 钮 的 三 种 状 态 ,
QAbstractButton::setChecked()只能设置两种状态。 Qt::CheckState 枚举如下表

Qt::CheckState 枚举(无标志)
该枚举描述了部件的选中状态。

枚举成员

说明

Qt::Unchecked

0

未选中

Qt::PartiallyChecked

1

部分被选中,一个项目中的子项目被选中(但不是全部),则该项目
就是部分选中状态。

Qt::Checked

2

选中

二、void stateChanged(int state); //信号
当复选按钮的状态发生变化时发送该信号。 若复选按钮具有三态形式,则按钮会在“选
中、未选中、部分选中”三种状态间变化,只要这三种状态变化都会发送该信号,但
QAbstractButton::toggled()信号在三种状态间变化时,则不一定会发送。

三、三种状态

1、未选中状态(0):

未选中状态是QCheckBox的默认状态,表示选项未被选中。在这种状态下,复选框为空心,并且其isChecked()方法返回false。当用户点击复选框时,QCheckBox会切换到选中状态。

// 创建一个QCheckBox对象
QCheckBox *checkBox = new QCheckBox("未选中状态", this);
// 设置默认状态为未选中
checkBox->setChecked(false);

2、选中状态(2):

选中状态表示用户已经选中了该选项。在这种状态下,复选框为实心,并且其isChecked()方法返回true。当用户点击复选框时,QCheckBox会切换到未选中状态。

QCheckBox *checkBox = new QCheckBox("选中状态", this);
// 设置默认状态为选中
checkBox->setChecked(true);

3、部分选中状态(1):

部分选中状态是QCheckBox特有的一种状态,在某些场景下非常有用。它表示选项的状态不确定,既不是完全选中也不是完全未选中。在这种状态下,复选框为一个实心的矩形,表示选项的状态不确定。其isChecked()方法返回false。

QCheckBox *checkBox = new QCheckBox("部分选中状态", this);
// 设置为部分选中状态
checkBox->setTristate(true);
checkBox->setCheckState(Qt::PartiallyChecked);

四、复选按钮的第三状态(见右图 Qt5.10.1 的选中状态):是指除了选中和未选中状态之外的第三种状态,这种状态用来指示“不变”,表示用户既不选中也不取消选中该复选按钮。可使用 setTristate()函数启用这种状态,使用 checkState()检查按钮的当前状态

                                    


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值