QRadioButton分组且无边框的简单实现

QRadioButton设置字体和按钮样式(变大,调整颜色) QRadioButton设置字体和按钮样式(变大,调整颜色)今天用到了QRadioButton这个选择的按钮,这是默认的样式,发现在ui的属性里面没有可调节的选项,有点犯愁,查了会文档,最后发现只能用样式表来修改QRadioButton的样式。QRadioButton::indicator 表示QRadioButton的指示器,也就是那个可以点的圆形按钮。用样式表设置了样式后,圆形按钮变大了,字体颜色啥的也变了,好看多了,达到了想要的效果。QRadioButton::checked 表示选中后要做的样式改变 阅读详情

最近在用QT+VS2008做一个项目,涉及到一个综合测评表,说白了有点像问卷调查%26mdash;%26mdash;很多题目每题若干个选项。

初始时打算用下拉框,每个框中填入所有选项,但后来一琢磨这种方式不够直观与人性化,增添了一步用户下拉的操作。

于是决定换用单选按钮,在QT中叫做QRadioButton。啪啦啪啦一阵折腾,界面上前一半是题目,后一半全是一行一行的小圆孔,直接上图:

兴奋地马上编译、运行,一点瞬间懵了,整个界面上只有一个按钮同时有效。

当然,头脑冷静下来后就知道原因了:没有对这些按钮进行分组处理。

分组,首先凭直觉想到的就是利用QGroupBox,前面忘了解释,其实QT中控件类的名称与使用方法和MFC类似,只是接触久了发现前者更容易通过纯代码实现GUI应用程序的开发。

立即对每行的四个小不点配备一个QGroupBox,由于是水平排布,又借用了QHBoxLayout控件,可以通过其方法设置子控件的间距等属性。

又是啪啦啪啦一阵,编译、运行,发现每行都存在一个组框,显然不够美观,上网查呗。

高手如云,招式一个接一个,试了几种改变QGroupBox的属性,均以失败告终。

最终采纳了一种朴素又高大上的土方法:利用QWidget替代QGroupBox,即能胜任工作又环保无边框。

简单地Find and Replace了一下,达到目的了。下面给出上面五组的完整实现代码,比较笨拙,各位朋友看了之后给点建议,希望能从代码量与复杂度上改进一番!

在%26ldquo;XXX.h%26rdquo;中声明所需变量,这里只给出单选按钮部分:

QRadioButton *jradio11;
QRadioButton *jradio12;
QRadioButton *jradio13;
QRadioButton *jradio14;
QRadioButton *jradio21;
QRadioButton *jradio22;
QRadioButton *jradio23;
QRadioButton *jradio24;
QRadioButton *jradio31;
QRadioButton *jradio32;
QRadioButton *jradio33;
QRadioButton *jradio34;
QRadioButton *jradio41;
QRadioButton *jradio42;
QRadioButton *jradio43;
QRadioButton *jradio44;
QRadioButton *jradio51;
QRadioButton *jradio52;
QRadioButton *jradio53;
QRadioButton *jradio54;

QWidget *jiaxiangG1;
QWidget *jiaxiangG2;
QWidget *jiaxiangG3;
QWidget *jiaxiangG4;
QWidget *jiaxiangG5;

QHBoxLayout *jiaxiangH1;
QHBoxLayout *jiaxiangH2;
QHBoxLayout *jiaxiangH3;
QHBoxLayout *jiaxiangH4;
QHBoxLayout *jiaxiangH5;

在%26ldquo;XXX.cpp%26rdquo;中实现:

jradio11 = new QRadioButton(this);
jradio12 = new QRadioButton(this);
jradio13 = new QRadioButton(this);
jradio14 = new QRadioButton(this);
jradio21 = new QRadioButton(this);
jradio22 = new QRadioButton(this);
jradio23 = new QRadioButton(this);
jradio24 = new QRadioButton(this);
jradio31 = new QRadioButton(this);
jradio32 = new QRadioButton(this);
jradio33 = new QRadioButton(this);
jradio34 = new QRadioButton(this);
jradio41 = new QRadioButton(this);
jradio42 = new QRadioButton(this);
jradio43 = new QRadioButton(this);
jradio44 = new QRadioButton(this);
jradio51 = new QRadioButton(this);
jradio52 = new QRadioButton(this);
jradio53 = new QRadioButton(this);
jradio54 = new QRadioButton(this);

jiaxiangG1 = new QWidget(this);
jiaxiangG2 = new QWidget(this);
jiaxiangG3 = new QWidget(this);
jiaxiangG4 = new QWidget(this);
jiaxiangG5 = new QWidget(this);

jiaxiangH1 = new QHBoxLayout(this);
jiaxiangH2 = new QHBoxLayout(this);
jiaxiangH3 = new QHBoxLayout(this);
jiaxiangH4 = new QHBoxLayout(this);
jiaxiangH5 = new QHBoxLayout(this);

jiaxiangH1-%26gt;addWidget(jradio11);
jiaxiangH1-%26gt;addWidget(jradio12);
jiaxiangH1-%26gt;addWidget(jradio13);
jiaxiangH1-%26gt;addWidget(jradio14);
jiaxiangG1-%26gt;setLayout(jiaxiangH1);
jiaxiangG1-%26gt;setGeometry(QRect(705,205,250,35));
jiaxiangH2-%26gt;addWidget(jradio21);
jiaxiangH2-%26gt;addWidget(jradio22);
jiaxiangH2-%26gt;addWidget(jradio23);
jiaxiangH2-%26gt;addWidget(jradio24);
jiaxiangG2-%26gt;setLayout(jiaxiangH2);
jiaxiangG2-%26gt;setGeometry(QRect(705,280,250,35));
jiaxiangH3-%26gt;addWidget(jradio31);
jiaxiangH3-%26gt;addWidget(jradio32);
jiaxiangH3-%26gt;addWidget(jradio33);
jiaxiangH3-%26gt;addWidget(jradio34);
jiaxiangG3-%26gt;setLayout(jiaxiangH3);
jiaxiangG3-%26gt;setGeometry(QRect(705,365,250,35));
jiaxiangH4-%26gt;addWidget(jradio41);
jiaxiangH4-%26gt;addWidget(jradio42);
jiaxiangH4-%26gt;addWidget(jradio43);
jiaxiangH4-%26gt;addWidget(jradio44);
jiaxiangG4-%26gt;setLayout(jiaxiangH4);
jiaxiangG4-%26gt;setGeometry(QRect(705,445,250,35));
jiaxiangH5-%26gt;addWidget(jradio51);
jiaxiangH5-%26gt;addWidget(jradio52);
jiaxiangH5-%26gt;addWidget(jradio53);
jiaxiangH5-%26gt;addWidget(jradio54);
jiaxiangG5-%26gt;setLayout(jiaxiangH5);
jiaxiangG5-%26gt;setGeometry(QRect(705,525,250,35));
QRadioButton样式设置(渐变) 文章目录前言一、先看效果二、样式表 前言 前段使用QRadioButton控件,发现修改样式之后,默认勾选的同心圆样式没了,变成实心圆了,网上搜索了一圈,发现大家都是贴图,然后自己研究了一下,使用渐变颜色可以实现这个效果,现在有空就记录一下 一、先看效果 废话不多说,先看效果 二、样式表 样式表示例如下,关键还是看渐变样式qradialgradient,渐变样式不理解的自己多拿几组数据测试一下看看效果; 根据需要自己调整颜色和白色圆环面积,如果勾选框变方了,尝试调整一下border-radius的大小 阅读详情

相关推荐

QT界面布局翻车实录:QRadioButton互斥失效?手把手教你用Layout和QGroupBox正确分组

本文详细解析了QT界面开发中QRadioButton互斥失效的常见问题,并提供了使用Layout和QGroupBox进行正确分组的解决方案。通过基础布局管理器和进阶QGroupBox容器的对比,帮助开发者快速掌握QT控件互斥机制,提升UI界面开发效率。

awxj68104的博客 396

QRadioButton样式表

//样式基本格式 QRadioButton{ font-family: "Microsoft YaHei";//字体类型 font-size: 25px;//字体大小,像素 color: #bdc8e2//字体颜色 outline:0px;//去掉焦点虚线框 border:3px solidred//外边框 min-width:30px;//尺寸 min-height:30px...

C++初学者 8670

QT控件对比指南:QRadioButton和QCheckBox的5个典型使用误区与正确姿势

本文深入剖析了QT开发中QRadioButton和QCheckBox的五个典型使用误区,包括互斥性原理、三态复选框应用、动态控件内存管理、信号槽连接优化以及样式表冲突解决。通过对比分析,提供了基于QButtonGroup管理、三态逻辑实现、对象树自动管理及性能优化等正确实践,帮助开发者避免常见陷阱,提升GUI应用的健壮性与效率。

weixin_28331555的博客 237

qss之QRadioButton

先来个示例 QRadioButton { font-family: "Microsoft YaHei"; font-size: 14px; color: #BDC8E2; background-color: #2E3648; } 效果图如下: 上面的例子是基本的样式设置,下面我们将探讨 QRadioButton 各种样式设置: 字体样式 font-family...

王廷云的博客 1万+

Qt如何设置QRadioButton中的点击按钮的背景色qss

要设置QRadioButton中点击按钮的背景色,您可以使用`::indicator`伪元素选择器来选择按钮的指示器部分,并设置其背景色。在这个示例代码中,当QRadioButton被选中时,其指示器部分的背景颜色被设置为红色。您可以根据需要修改背景颜色。radioButton->setStyleSheet("/* 上述的样式表代码 */");这样,当QRadioButton被选中时,其指示器部分的背景色将会变为红色。

xcksj888的博客 2894

Windows 10/11下Drive Composer Pro 2.9.0完整安装与连接ACS880变频器实战教程

本文详细介绍了在Windows 10/11系统上安装Drive Composer Pro 2.9.0并连接ACS880变频器的完整教程。从系统环境准备、软件安装到许可证配置,再到USB、蓝牙和以太网三种连接方式的实战操作,帮助工业自动化工程师快速掌握ABB变频器的调试技巧。

weixin_32956805的博客 530

QT QRadioButton使用详解

如果启用了自动互斥,属于同一个父部件的单选框的行为就和属于一个互斥按钮组的一样。每当一个按钮切换选中或未选中状态时,会发出的toggled()信号。就像QPushButton一样,单选框可以显示文本,以及可选的小图标。QRadioButton是一个可以切换选中(checked)或未选中(unchecked)状态的选项按钮。也就是说,在一组单选框中,一次只能选中一个单选框。本文详细的介绍了QRadioButton控件的各种操作,例如:QRadioButton分组、默认选中、禁用启用、重置样式等操作。

断点 4万+

Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈

Titans 是谷歌推出的新型神经网络架构,通过神经长期记忆模块突破 Transformer 在处理长序列数据时的瓶颈,支持并行计算,显著提升训练效率。

士多啤梨先生の博客 994

Qt学习笔记(十六):QRadioButton 的常用方法

// QRadioButton 是单选按钮,当有多个 QRadioButton 控件存在时,只能选中一个; // 一般在使用 QRadioButton 控件时,都需要给 QRadioButton 分组; // 使用 QGroupBox 控件进行分组,该控件通常带有一个边框和一个标题栏,作为容器部件来使用; // 需要注意的是,QGroupBox 容器内部必须使用布...

秋忆夏伤的博客 1万+

别再让COGI拖慢你的SAP接口!手把手教你配置BAPI_PRODORDCONF_CREATE_TT的同步货物移动

本文深入解析SAP生产订单报工接口中的COGI问题,通过BAPI_PRODORDCONF_CREATE_TT的同步配置实战,解决异步更新导致的性能瓶颈。文章详细介绍了增强点配置和性能验证,帮助用户彻底消除COGI堆积,提升接口效率。

weixin_29214691的博客 482

CMN-700组件全解析:从XP路由器到HN-F主节点的实战配置指南

本文深入解析Arm CMN-700片上网络IP的核心组件与实战配置。重点剖析了XP网格路由器的拓扑规划与CHI通道管理,以及HN-F全一致性主节点在维护缓存一致性、管理SLC和地址映射中的关键作用。通过一个12×12网格的配置案例,为硬件工程师提供了从组件布局、地址映射到性能调优的系统级设计指南。

weixin_29313423的博客 287

QT实战:如何用QRadioButton和QCheckBox打造用户友好的表单界面(附完整代码)

本文深入探讨了在QT桌面应用开发中,如何专业地使用QRadioButton和QCheckBox构建用户友好的表单界面。通过对比两者核心设计哲学,详细讲解了利用QButtonGroup实现稳健的互斥逻辑、使用容器控件进行视觉分组、实现智能默认值与全选/反选等高级交互模式,并提供了模块化代码和完整实战案例,帮助开发者提升表单的可用性与代码可维护性。

chair的专栏 586

三菱PLC通信库大比拼:手把手教你用C#实现最高效的McProtocol数据读写

本文深入比较了三菱PLC通信库的性能,重点介绍了如何使用C#高效实现McProtocol数据读写。通过实测数据对比HslCommunication、McProtocol-next和自定义方案的优劣,提供优化技巧和代码示例,帮助开发者在工业自动化场景中提升通信效率。

m0n1o2p的博客 259

QT--深入解析QRadioButton与QCheckBox的交互设计与实战应用

本文深入解析了QT框架中QRadioButton与QCheckBox的核心区别与实战应用。通过对比单选与复选在交互设计上的本质差异,详细阐述了QRadioButton的自动排他机制与QCheckBox的三态特性,并结合表单设计、设置界面等实战案例,提供了清晰的代码实现与常见“坑点”规避指南,帮助开发者构建更专业、用户体验更佳的GUI界面。

weixin_29230649的博客 296

思科模拟器CIsco Packet Tracer利用三层交换机实现VLAN间路由

版权声明:如果对大家有帮助,大家可以自行转载的。 1.技术原理: 三层交换机具备网络层的功能,实现 VLAN 相互访问的原理是:利用三层交换机的路由功能,通过识别数据包的 IP 地址,查找路由表进行选路转发,三层交换机利用直连路由可以实现不同 VLAN 之间的相互访问。三层交换机给接口配置 IP 地址。采用 SVI(交换虚拟接口)的方式实现 VLAN 间互连。SVI 是指为交换机中的VLAN 创建...

qq_37992321的博客 1万+

C# 上位机程序中的数据采集与存储技术:从采集到持久化的完整解决方案

本文系统讲解C#上位机程序如何实现设备数据采集与持久化。主要内容包括:1)多种数据采集方式(串口通信、Modbus、OPC等)及代码示例;2)详细对比不同存储技术(CSV、SQLite、关系型数据库等)的优缺点;3)提供SQLite等存储实现代码;4)推荐分层系统架构(采集-缓存-存储-可视化);5)性能优化建议(多线程采集、异步存储、批量写入等)。文章强调应根据项目需求选择合适的技术方案,构建高效稳定的数据采集存储闭环系统。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1026

QT QRadioButton自定义样式:3分钟搞定圆圈颜色修改(附完整代码)

本文详细介绍了如何快速自定义QT QRadioButton的样式,特别是其核心指示器(圆圈)的颜色。通过样式表机制,开发者无需复杂重绘即可轻松修改选中、未选中等状态的圆圈颜色,并提供从基础修改到进阶渐变、动态设置的完整代码示例,助力打造个性化UI界面。

lll78的博客 428

23、OpenMP常见用例与标准循环级示例详解

本文详细介绍了OpenMP的三种典型用例:循环级OpenMP、高级OpenMP和MPI+OpenMP,适用于不同层次的并行需求。重点讲解了循环级OpenMP在向量加法、流三元组和模板计算中的应用示例,并探讨了首次触摸优化、线程绑定、NUMA架构影响等关键性能优化策略。通过实际代码演示和性能分析,帮助开发者快速掌握OpenMP的基础并行化方法,并为后续高性能优化提供指导。

fanta的博客 87

31-容器和容器控件-分组框容器QGroupBox

QGroupBox 通常带有一个边框和一个标题栏标题栏上可以有勾选项,标题栏可以放到左边、中间或右边。布局时 QGroupBox 可用作一组控件的容器,内部使用布局控件(如 QBoxLayout)进行布局。分组框控件 QGroupBox 通常是其他控件的容器,将一组意义相同意义的控件放到 QGroupBox 中。用QGroupBox类创建实例对象的方法如下所示。分组框控件的信号有 clicked(),clicked(bool)和 toggled(bool)分组框控件QGroupBox的常用方法如表所示。

***** 804

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

上一篇: Mina、Netty、Twisted一起学(七):发布/订阅(Publish/Subscribe)
下一篇: [Linux] 在 Linux CLI 使用 ssh-keygen 生成 RSA 密钥
lin91o7c
博客等级 码龄12年 1粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值