QCheckBox

QCheckBox 类代表复选钮,它继承了 QAbstractButton 类,因此也有其全部的属性、信号和槽。


        

        构造 

        QCheckBox 支持以下构造函数:

QCheckBox(QWidget *parent= 0);
QCheckBox(const QString &text, QWidget *parent = 0);

        其中 text 参数表示要显示的文本。生成的复选钮默认是不排他的。



        属性

        tristate 属性用于控制复选钮是否为三态的,相关的函数函数如下:

bool isTristate() const;     // 判断是否三态
void setTristate(bool y = true);    // 设置是否为三态的

        三态的复选钮不只有打开和关闭两种状态,其状态由 checkState 属性来代表,相关的成员函数如下:

Qt::CheckState checkState() const;    // 获得状态
void setCheckState(Qt::CheckState state);    // 设置是否为三态的

        这里 Qt::CheckState 是一个枚举类型,它有以下取值。

        1)Qt::Unchecked:未选中。

        2)Qt::PartiallyChecked:部分选中。

        3)Qt::Checked:选中。


        部分选中的状态经常用来表示一个选项树中某个选项的子选项有的选中、有的未选的状态。如果是一个复选钮不是三态的,则也可以用从 QAbstractButton 继承来的 checked 属性操作它的状态。



        信号

        当复选钮的状态发生变化时,将发射以下信号:

void stateChanged(int state);

        其中参数 state 表示复选钮的新状态
### QT 中 QCheckBox 组件的使用方法及属性介绍 #### 创建 QCheckBox `QCheckBox` 是 Qt 架中用于提供复选的类,它允许用户通过勾选或取消勾选来切换状态。创建 `QCheckBox` 的基本方式如下: ```cpp // 创建一个带有文本标签的复选 QCheckBox *checkBox = new QCheckBox("Check me", parent); ``` 此代码片段展示了如何初始化一个新的 `QCheckBox` 实例并为其指定初始文本[^1]。 #### 设置和获取状态 为了操作复选的状态,可以利用 `setChecked()` 方法设定当前的选择情况;而要读取用户的输入,则应调用 `isChecked()` 函数返回布尔值表示是否被选中: ```cpp // 设定复选为已选中状态 checkBox->setChecked(true); // 判断复选是否处于选中状态 bool isChecked = checkBox->isChecked(); ``` 对于支持三种可能值(未选中、部分选中、完全选中)的情况,还可以借助于 `setTristate()` 和 `checkState()` 来处理更复杂的情形[^4]。 #### 信号与槽机制 当复选的状态发生变化时会发出特定信号,比如 `stateChanged(int)` 或者简单的 `toggled(bool)` 。这些信号通常连接到相应的槽函数以便响应交互行为: ```cpp connect(checkBox, &QCheckBox::toggled, [](bool checked){ qDebug() << "Checkbox toggled:" << (checked ? "On" : "Off"); }); ``` 上述例子演示了一个匿名 lambda 表达式的应用作为接收器,在每次开关改变位置的时候打印消息至调试控制台。 #### 自定义样式设置 除了默认外观外,开发者也可以自定义 `QCheckBox` 的视觉效果。这可以通过 CSS 风格表单实现,例如更改指示符图像或者调整尺寸大小等特性: ```css /* 定义整体文字颜色 */ QCheckBox { color: white; } /* 修改图标图片路径及其宽高 */ QCheckBox::indicator { border-image: url(:/src/image_icon/custom_checkbox_unchecked.png); width: 20px; height: 20px; } QCheckBox::indicator:checked { border-image: url(:/src/image_icon/custom_checkbox_checked.png); } ``` 这段样式规则指定了同的背景图分别对应着同状态下呈现给用户的图形界面[^3]。 #### 属性差异对比 值得注意的是,虽然 `QCheckBox`, `QPushButton` 及 `QRadioButton` 均继承自共同基底类 `QAbstractButton` ,但是它们各自具备独特的特性和应用场景。其中 `QCheckBox` 主要是用来做多项选择的功能,并且拥有特有的 `checkable` 和 `checked` 属性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值