news 2026/4/18 6:48:28

Qt技术笔记(八):QCheckBox 多选框笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qt技术笔记(八):QCheckBox 多选框笔记

Qt技术笔记(八):QCheckBox 多选框笔记

​ Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发窗体的应用程序,在Qt中我们需要可以通过拖拽的方式将不同组件放在指定的位置,实现图形开发极大的方便了开发效率,本章将重工点介绍QCheckBox多选框组件的常用方法及灵活的运用。

​ 首先,你需要调用包含Qt框架中与QCheckBox相关的头文件:

/* by 01130.hk - online tools website : 01130.hk/zh/generatematicwallets.html */ #include <QCheckBox>

1.控件简介及常用方法接口

QCheckBox是Qt中用于实现复选框的组件,它提供了丰富的功能和灵活性。与RadiButton组件不同,CheckBox组件支持多项选择以及三态选择,即可以是选中、未选中或半选中的状态。下面是QCheckBox的主要方法的概述和功能:

方法接口功能描述
QCheckBox(QWidget *parent = nullptr)构造函数,创建一个QCheckBox组件。
isChecked() const返回复选框的当前状态,选中返回true,否则返回false
setCheckState(Qt::CheckState state)设置复选框的状态,可以是Qt::UncheckedQt::PartiallyCheckedQt::Checked
checkState() const返回复选框的当前状态,枚举类型Qt::CheckState
setTristate(bool)启用或禁用三态复选框的功能。
isTristate() const返回是否启用了三态复选框的功能。
setCheckable(bool checkable)设置复选框是否可以被选中,true表示可以选中,false表示不能选中。
isChecked() const返回复选框的当前状态,选中返回true,否则返回false
setChecked(bool check)设置复选框的状态,true 表示选中,false 表示未选中。
text() const返回复选框的文本标签。
setText(const QString &text)设置复选框的文本标签。
stateChanged(int)复选框状态变化时发射的信号,参数是枚举类型Qt::CheckState,可以是Qt::UncheckedQt::PartiallyCheckedQt::Checked

其中重要的数据类型中:Qt::CheckState的枚举类型 反映QCheckBox的选中状态:

枚举值详解
Qt::Unchecked0未选中
Qt::PartiallyChecked1半选中
Qt::Checked2选中

创建QCheckBox

你可以通过以下方式创建一个QCheckBox对象:

/* by 01130.hk - online tools website : 01130.hk/zh/generatematicwallets.html */ QCheckBox *checkBox = new QCheckBox("Check me", this); // "Check me" 是复选框旁边的文本

设置和获取状态

你可以设置复选框的状态(选中或未选中):

checkBox->setChecked(true); // 设置复选框为选中状态

获取复选框的状态:

bool isChecked = checkBox->isChecked(); // 返回复选框是否被选中

信号与槽

QCheckBox提供了一个信号stateChanged,当复选框的状态改变时,这个信号会被触发。你可以连接这个信号到一个槽函数来响应状态的改变:

connect(checkBox, &QCheckBox::stateChanged, this, &YourClass::onCheckBoxStateChanged); void YourClass::onCheckBoxStateChanged(int state) { if (state == Qt::Checked) { // 复选框被选中时的逻辑 } else { // 复选框未被选中时的逻辑 } }

自定义样式

你还可以通过样式表(StyleSheet)来自定义QCheckBox的外观:

checkBox->setStyleSheet("QCheckBox::indicator { width: 13px; height: 13px; }")

将QCheckBox添加入布局中

在Qt中,通常会将控件放入布局管理器中,以便于管理控件的位置和大小。例如,将QCheckBox放入水平布局:

QHBoxLayout *layout = new QHBoxLayout; layout->addWidget(checkBox);

2.代码示例

下面是一个简单的示例,展示了如何在Qt中使用QCheckBox

#include <QApplication> #include <QWidget> #include <QCheckBox> #include <QVBoxLayout> class MainWindow : public QWidget { public: MainWindow() { QCheckBox *checkBox = new QCheckBox("Check me", this); connect(checkBox, &QCheckBox::stateChanged, this, &MainWindow::onCheckBoxStateChanged); QVBoxLayout *layout = new QVBoxLayout(this); layout->addWidget(checkBox); } void onCheckBoxStateChanged(int state) { if (state == Qt::Checked) { qDebug() << "CheckBox is checked"; } else { qDebug() << "CheckBox is unchecked"; } } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow window; window.show(); return app.exec(); }

这个示例创建了一个主窗口,其中包含一个复选框,并且当复选框的状态改变时,会在控制台输出相应的信息。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/10 20:25:35

适老化移动应用界面易用性测试体系构建与实施策略

一、适老化测试的时代背景与核心挑战 人口结构变革的紧迫需求 我国60岁以上人口占比已达18.7%&#xff08;2.64亿&#xff09;&#xff0c;老年群体数字需求激增与界面使用障碍的矛盾日益凸显。测试人员需直面三大核心挑战&#xff1a;视觉感知衰退导致的界面元素识别困难&…

作者头像 李华
网站建设 2026/4/16 13:56:28

期刊让我投“预印本”,我投还是不投?投它有啥用?

在学术研究的道路上&#xff0c;科研工作者们常常会面临各种选择&#xff0c;其中之一就是当收到期刊让投“预印本”的邀请时&#xff0c;该何去何从。预印本近年来在学术领域逐渐崭露头角&#xff0c;但其对于许多研究者来说&#xff0c;仍然笼罩着一层神秘面纱。那么&#xf…

作者头像 李华
网站建设 2026/4/16 19:49:54

被椰树独宠了十几年的长公主徐冬冬大婚!60亿票房作品成亮眼陪嫁

在这个万物皆可营销的时代&#xff0c;一场婚礼能玩出多少花样&#xff1f;想知道答案就来看看徐冬冬和尹子维的“椰树牌”婚礼。当印有“新婚幸福&#xff0c;早生龙凤”的椰汁罐铺满货架&#xff0c;当“椰历38年&#xff0c;椰树公主大婚”的梗刷屏全网&#xff0c;人们才惊…

作者头像 李华
网站建设 2026/3/13 16:43:50

打破传输瓶颈:替代国外FTP的工具有哪些新选择

信创战略深化落地&#xff0c;数据安全合规要求愈发严苛&#xff0c;国外 FTP 工具的安全漏洞、信创适配缺失等短板愈发凸显&#xff0c;已难以匹配企业数字化转型的传输需求。越来越多企业开始探寻国产化替代方案&#xff0c;替代国外 FTP 的工具有哪些&#xff1f;成为政企搭…

作者头像 李华
网站建设 2026/4/18 5:46:19

降重省心了!专科生专用的降AI率工具 —— 千笔·降AIGC助手

在AI技术迅速发展的今天&#xff0c;越来越多的专科生开始借助AI工具辅助论文写作&#xff0c;以提升效率和内容质量。然而&#xff0c;随之而来的AI率超标问题也日益突出&#xff0c;成为影响论文通过的重要障碍。随着查重系统对AI生成内容的识别能力不断提升&#xff0c;许多…

作者头像 李华