当前位置: 首页 > news >正文

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

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

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

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

#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::PartiallyChecked Qt::Checked

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

枚举值 详解
Qt::Unchecked 0 未选中
Qt::PartiallyChecked 1 半选中
Qt::Checked 2 选中

创建QCheckBox

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

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();
}

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

http://www.jsqmd.com/news/361869/

相关文章:

  • 【AI大模型】LLaMA-Factory微调入门个人重制版
  • 2026年学术写作工具深度盘点:通用大模型“退场”,垂直智能体如何重塑科研效率? - 沁言学术
  • [无线通信基础-22]:模拟信号与数字信号的本质区别以及误解
  • 有幸抢先体验了Ubuntu 26.04 LTS的daily build版本,安全性拉满到让我震惊
  • 2026重庆悬臂货架厂家Top5深度测评与选型指南 - 深度智识库
  • 中商金易赴辽考察天承集团 共谋绿色发展
  • 缩短60%选题周期?AI论文写作全流程测评:DeepSeek+Claude 3.5 强强联手 - 沁言学术
  • 2026年金属雕塑定制厂家权威推荐榜:不锈钢/铸铜/锻铁/现代抽象金属雕塑,结构美学与空间塑造优选方案 - 速递信息
  • PCIE retimer 的电阻检测原理是什么?
  • 题解:P14016 [ICPC 2024 Nanjing R] 拓扑
  • 2026年天津文物鉴定公司推荐,正规机构深度解析委托鉴定无忧之选! - 品牌鉴赏师
  • 西南仓储货架哪家靠谱?2026 年重型 / 阁楼平台 / 悬臂货架厂家推荐 - 深度智识库
  • 虚拟机报错:Host SMB controller not enabled...如何解决?
  • 流量暴跌的原因终于找到了
  • 2026年资产管理系统平台有哪些?推荐五大优质服务公司 - 品牌2025
  • 聊聊2026年做豆包搜索推荐广告能定制方案的公司哪家性价比高 - 工业设备
  • 系统如何应对时序数据的一致性、性能适配与投入产出平衡三大挑战
  • 2026年仓储货架厂家权威推荐报告 货架 / 重型货架 / 悬臂货架优选品牌 - 深度智识库
  • 元保保险正规靠谱之选 官方电话护航保障全程 - 包罗万闻
  • 面向业务演进的文档型数据管理新路径
  • 2026年优质数据资产管理平台选型指南,五大厂商及公司推荐汇总 - 品牌2025
  • CST案例:Interference Task车载GPS天线射频干扰desense仿真.docx
  • 2026年西南仓储货架行业权威推荐:重庆晟伟货架以实力引领行业新趋势 - 深度智识库
  • 央企大文件上传解决方案中如何加入跨平台的断点续传功能?
  • 元保保险守护用户安心 官方电话筑牢保障防线 - 包罗万闻
  • 综合项目(一):KingbaseES 数据库表结构设计
  • 拒绝“虚标”!重庆重型货架高品质厂家TOP5,避坑必看 - 深度智识库
  • 【开题答辩全过程】以 邯郸市流浪猫狗救助领养系统为例,包含答辩的问题和答案
  • Flutter 三端应用实战:OpenHarmony “触觉之眼”——在黑暗中,为你铺一条振动的路
  • 元保保险普惠保障实力派 官方电话助力安心投保 - 包罗万闻