当前位置:网站首页>Qt | 控件之 QCheckBox
Qt | 控件之 QCheckBox
2022-08-02 14:41:00 【华为云】
QCheckBox 提供了一个带文本标签的复选框,属于选项按钮,可以表现选中或未选中的状态,如图所示(图中表现了三个状态的 QCheckBox):
头文件: #include<QCheckBox>
创建方式: 静态方式和动态方式。
当我们选择静态方式(直接从工具箱中拖拉复选框控件的方式)使用 QCheckBox 时,不需要我们手动添加头文件,Qt Creator 会自动添加;当我们选择动态方式(通过 new 创建复选框的方式)时,需要我们通过代码来手动添加头文件。
动态方式创建:QCheckBox checkBox = new QCheckBox(QStringLiteral(“复选框 1”), this);//参数一声明 QCheckBox 的文本;参数二声明 QCheckBox 的父控件。
设置图标:
setIcon();//设置复选框图标
图标文件既可以是 png 文件,也可以是 ico 文件。图标是指在勾选框右边除了显示文字,还可以显示一个图片,这个图片就是图标,一般不用。
设置样式:
setStyleSheet();//设置复选框样式、文字样式
“QCheckBox::indicator:enabled:unchecked{image: url(:/image/weigx.png);}”//未勾选图片
“QCheckBox::indicator:enabled:checked{image: url(:/image/yigx.png);}”//已勾选图片
“QCheckBox::indicator:disabled{image: url(:/Resources/image/jinyong.png);}”//禁用图片
“QCheckBox{color:#666666;font-family:Microsoft YaHei UI;font-size:16px;”
“qproperty-alignment: ‘AlignVCenter | AlignLeft’;}”;//字体颜色、字体、大小、对齐方式
设置文本:
setText(); //设置复选框的文本。
text(); //返回复选框的显示文本。
设置复选框的状态:
setChecked(); //True 表示选中;False 表示取消选中。
isChecked(); //返回复选框是否被选中。
setTriState(); //设置复选框为一个三态复选框。
setCheckState(); //设置三态复选框的状态。
三态就是除了打勾和不打勾两个分别表示选中和没选中状态外,还有一个半选中状态,此时复选框的表现为方框内填充了颜色,上图中的默认状态就是半选中状态。
通常,几个复选框在一起都是可以多选的,这种情况称为非独占方式;复选框还可以实现单选的效果,当选中其中一个后,其他几个自动不选中,这种情况称为独占方式,此时的效果和单选按钮的效果类似。
实现独占效果,可以通过 QButtonGroup 类来实现。在 QButtonGroup 中创建多个 QCheckBox,然后设置 QButtonGroup->setExclusive(false);实现独占效果,只能单选。QButtonGroup->setExclusive(true);实现非独占效果,可以多选。
信号: stateChanged(int state);
参数为 int 类型,其中 Qt::checked 表示“选中”;Qt::Unchecked 表示“未选中”;Qt::PartiallyChecked 表示“半选中”。
可以连接自定义的槽函数:connect(ui.checkBox, SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int)));
我们使用 QCheckBox 的流程就是:1.创建一个或多个复选框;2.设置复选框样式;3.连接信号槽函数;逻辑处理都会放在槽函数中实现。
边栏推荐
猜你喜欢
MySQL语法入门
一文让你快速写上扫雷游戏!童年的经典游戏,发给你的小女友让你装一波!!
MySQL (2)
2022-07-27 第六小组 瞒春 学习笔记
2022-07-16 第五小组 瞒春 学习笔记
2022 Security Officer-A Certificate Exam Questions and Mock Exam
【 Leetcode string, the string transform/hexadecimal conversion 】 HJ1. The length of the string last word HJ2. Calculation of a certain number of characters appear HJ30. String merging processing
TMS320C6678开发板( DSP+Zynq )RTOS综合功能案例,嵌入式必看!
OneFlow源码解析:Op、Kernel与解释器
nacos
随机推荐
该死的单元测试,写起来到底有多痛?
Win 10、Win 11 安装 MuJoCo 及 mujoco-py 教程
ELK日志分析系统
阅读,是最便宜的高贵
XGBoost 和随机森林在表格数据上优于深度学习?
2022-07-08 第五小组 瞒春 户外拓展
第三章-函数的增长-3.1-渐近记号
已解决ModuleNotFoundError: No module named‘ pip‘(重新安装pip的两种方式)
"No title"
散列表简述
【学习笔记之菜Dog学C】自定义类型详解(结构体+枚举+联合)
看我如何用多线程,帮助运营小姐姐解决数据校对系统变慢!
Traverse Heap PAT Class A 1155 Heap Path
基于ip的证书
2022 VMware下载安装教程
Getting Started with MySQL Syntax
2022-0801 第六小组 瞒春 学习笔记
Servlet基础详解
统计二进制中1的个数,两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
vite.config.ts 引入 `path` 模块注意点!