「Qt Widget中文示例指南」如何实现一个分组框
Qt是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写所有平台无差别运行更提供了几乎所有开发过程中需要用到的工具。如今Qt已被运用于超过70个行业、数千家企业支持数百万设备及应用。Group Box分组框示例展示了如何在Qt中使用不同类型的分组框。Group Box分组框是容器小部件可以在逻辑上和屏幕上将按钮组织成组它们管理用户和应用程序之间的交互因此您不必强制执行简单的约束。分组框通常用于将复选框和单选按钮组织到排他性组中。Group Boxes示例包含一个单一的Window类用于显示四个分组框一个独占的单选按钮组、一个非独占的复选框组、一个具有启用复选框的独占单选按钮组以及一个具有普通按钮的组框。Window类定义Window类是QWidget的一个子类用于显示多个分组框。类定义包含构造每个分组框的函数并用不同选择的按钮部件填充它class Window : public QWidget { Q_OBJECT public: Window(QWidget *parent nullptr); private: QGroupBox *createFirstExclusiveGroup(); QGroupBox *createSecondExclusiveGroup(); QGroupBox *createNonExclusiveGroup(); QGroupBox *createPushButtonGroup(); };在本示例中小部件将用作顶级窗口因此定义了构造函数这样我们就不必指定父小部件。Window类实现构造函数创建了一个网格布局并用要显示的每个分组框填充它Window::Window(QWidget *parent) : QWidget(parent) { QGridLayout *grid new QGridLayout; grid-addWidget(createFirstExclusiveGroup(), 0, 0); grid-addWidget(createSecondExclusiveGroup(), 1, 0); grid-addWidget(createNonExclusiveGroup(), 0, 1); grid-addWidget(createPushButtonGroup(), 1, 1); setLayout(grid); setWindowTitle(tr(Group Boxes)); resize(480, 320); }用于创建每个分组框的函数都返回一个要插入到网格布局中的QGroupBox。QGroupBox *Window::createFirstExclusiveGroup() { QGroupBox *groupBox new QGroupBox(tr(Exclusive Radio Buttons)); QRadioButton *radio1 new QRadioButton(tr(Radio button 1)); QRadioButton *radio2 new QRadioButton(tr(Radio button 2)); QRadioButton *radio3 new QRadioButton(tr(Radio button 3)); radio1-setChecked(true);第一个分组框包含并管理三个单选按钮由于分组框只包含单选按钮因此默认情况下它是排他性的因此在任何给定时间只能选中一个单选按钮。我们检查第一个单选按钮以确保按钮组包含一个已检查的按钮。QVBoxLayout *vbox new QVBoxLayout; vbox-addWidget(radio1); vbox-addWidget(radio2); vbox-addWidget(radio3); vbox-addStretch(1); groupBox-setLayout(vbox); return groupBox; }我们在分组框中使用垂直布局以垂直列表的形式显示按钮并将分组框返回给构造函数。第二个分组框本身是可检查的提供了一种方便的方法来禁用其中的所有按钮。最初它是未选中的因此必须先选中分组框本身然后才能选中其中的任何单选按钮。QGroupBox *Window::createSecondExclusiveGroup() { QGroupBox *groupBox new QGroupBox(tr(Exclusive Radio Buttons)); groupBox-setCheckable(true); groupBox-setChecked(false);分组框包含三个互斥的单选按钮和一个独立的复选框为了保持一致性必须始终选中一个单选按钮因此我们确保首先选中第一个按钮。QRadioButton *radio1 new QRadioButton(tr(Radio button 1)); QRadioButton *radio2 new QRadioButton(tr(Radio button 2)); QRadioButton *radio3 new QRadioButton(tr(Radio button 3)); radio1-setChecked(true); QCheckBox *checkBox new QCheckBox(tr(Independent checkbox)); checkBox-setChecked(true);按钮的排列方式与第一个分组框中的按钮相同。QVBoxLayout *vbox new QVBoxLayout; vbox-addWidget(radio1); vbox-addWidget(radio2); vbox-addWidget(radio3); vbox-addWidget(checkBox); vbox-addStretch(1); groupBox-setLayout(vbox); return groupBox; }第三个分组框使用“平面”样式构造更适合某些类型的对话框。QGroupBox *Window::createNonExclusiveGroup() { QGroupBox *groupBox new QGroupBox(tr(Non-Exclusive Checkboxes)); groupBox-setFlat(true);此分组框仅包含复选框因此默认情况下它是非排他性的这意味着每个复选框都可以独立于其他复选框进行选中。QCheckBox *checkBox1 new QCheckBox(tr(Checkbox 1)); QCheckBox *checkBox2 new QCheckBox(tr(Checkbox 2)); checkBox2-setChecked(true); QCheckBox *tristateBox new QCheckBox(tr(Tri-state button)); tristateBox-setTristate(true);同样我们在分组框中使用垂直布局以垂直列表的形式显示按钮。QVBoxLayout *vbox new QVBoxLayout; vbox-addWidget(checkBox1); vbox-addWidget(checkBox2); vbox-addWidget(tristateBox); vbox-addStretch(1); groupBox-setLayout(vbox); return groupBox; }最后一个分组框只包含按钮并且与第二个分组框一样它是可检查的。QGroupBox *Window::createPushButtonGroup() { QGroupBox *groupBox new QGroupBox(tr(Push Buttons)); groupBox-setCheckable(true); groupBox-setChecked(true);我们创建了一个普通按钮、一个切换按钮和一个平面按钮QPushButton *pushButton new QPushButton(tr(Normal Button)); QPushButton *toggleButton new QPushButton(tr(Toggle Button)); toggleButton-setCheckable(true); toggleButton-setChecked(true); QPushButton *flatButton new QPushButton(tr(Flat Button)); flatButton-setFlat(true);Push按钮可以用来显示弹出式菜单我们创建一个并附加一个简单的菜单QPushButton *popupButton new QPushButton(tr(Popup Button)); QMenu *menu new QMenu(this); menu-addAction(tr(First Item)); menu-addAction(tr(Second Item)); menu-addAction(tr(Third Item)); menu-addAction(tr(Fourth Item)); popupButton-setMenu(menu);最后我们垂直布局小部件并返回创建的分组框QVBoxLayout *vbox new QVBoxLayout; vbox-addWidget(pushButton); vbox-addWidget(toggleButton); vbox-addWidget(flatButton); vbox-addWidget(popupButton); vbox-addStretch(1); groupBox-setLayout(vbox); return groupBox; }

相关新闻

抢先看!界面控件DevExpress WPF 2024产品路线图预览(一)

抢先看!界面控件DevExpress WPF 2024产品路线图预览(一)

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 本文将介绍2024年Dev…

2026/7/26 0:43:50 阅读更多 →
REM-unit-polyfill性能优化:7个技巧提升旧浏览器CSS渲染速度

REM-unit-polyfill性能优化:7个技巧提升旧浏览器CSS渲染速度

REM-unit-polyfill性能优化:7个技巧提升旧浏览器CSS渲染速度 【免费下载链接】REM-unit-polyfill A polyfill to parse CSS links and rewrite pixel equivalents into head for non supporting browsers 项目地址: https://gitcode.com/gh_mirrors/re/REM-unit-…

2026/7/26 0:33:04 阅读更多 →
TMS320F2837xS USB与uPP寄存器级编程及DMA配置实战指南

TMS320F2837xS USB与uPP寄存器级编程及DMA配置实战指南

1. 项目概述与核心价值 在嵌入式系统开发,尤其是工业控制、高速数据采集这类对实时性和带宽要求极高的领域,直接操作微控制器(MCU)的外设寄存器是工程师必须掌握的硬核技能。这不仅仅是调用几个现成的驱动库函数那么简单&#xff…

2026/7/25 5:16:13 阅读更多 →

最新新闻

腾讯混元Hy3深度解析:295B参数只激活21B,推理效率怎么做到提升40%的

腾讯混元Hy3深度解析:295B参数只激活21B,推理效率怎么做到提升40%的

7月6日腾讯混元Hy3正式发布,7月20日宣布限时免费延长到8月5日。说实话,295B参数、Apache 2.0开源、API定价输入1元/输出4元/百万token——这些数字单独拿出来都不算特别惊人,但放在一起看,你会发现腾讯这次打了一套组合拳。 我最感…

2026/7/26 0:40:47 阅读更多 →
Django毕设项目: 协同过滤算法在音乐推荐系统中的应用与实现 个性化收藏音乐智能推送系统设计(源码+文档,讲解、调试运行,定制等)

Django毕设项目: 协同过滤算法在音乐推荐系统中的应用与实现 个性化收藏音乐智能推送系统设计(源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/26 0:39:47 阅读更多 →
Django毕设项目:基于Django的支持个性化需求的餐厅业务管理系统实现 数字化餐饮经营数据统计管理平台 (源码+文档,讲解、调试运行,定制等)

Django毕设项目:基于Django的支持个性化需求的餐厅业务管理系统实现 数字化餐饮经营数据统计管理平台 (源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/26 0:39:47 阅读更多 →
知名的国际EMBA择校指南,适配企业创始人

知名的国际EMBA择校指南,适配企业创始人

一、前言:民营企业家EMBA择校核心逻辑民营企业家、企业创始人择校EMBA,普遍面临核心痛点:市面项目参差不齐,国际项目与内地项目适配场景模糊、课程同质化严重、圈层资源与产业赋能不匹配、学位认证效力不清。多数人择校时难以平衡…

2026/7/26 0:39:47 阅读更多 →
AI漫剧角色建模提示词

AI漫剧角色建模提示词

东方华贵贵女OC设定,珊瑚红与香槟金配色,红宝石凤冠,黑银长卷发,花卉刺绣抹胸礼裙、薄纱外披和长拖尾;包含三视图、服装拆解、八种表情、配饰与面料特写,白底轻奢设定卡,高清,3:4。东方清雅仙姬…

2026/7/26 0:39:47 阅读更多 →
Django计算机毕设之基于 Web 的智能网上购物商城系统 商品上架销售与用户购物平台设计(完整前后端 代码+说明文档+LW,调试定制等)

Django计算机毕设之基于 Web 的智能网上购物商城系统 商品上架销售与用户购物平台设计(完整前后端 代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/26 0:39:47 阅读更多 →

日新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻