17.Qt 单选框相关操作

目录

前言:

技能:

内容:

1. 布置界面

2.管理

3.槽函数

参考:


前言:

组合选择只能选择一个的单选框实现,以及管理组合单选框


技能:

<QRadioButton>

<QButtonGroup>

内容:


1. 布置界面

先在ui界面中拖个GroupBox,再在GroupBox里面拖几个Radio Button,拖动完后自动就实现了被放在一个GroupBox里面的Radio Button只会有一个被选择到,右侧对象可以显示出父类情况

2.管理

首先了解到<QButtonGroup>这个类可以方便管理多个Radio Button,具体了解可以看参考链接

回到头文件,添加代码,如果只有一个就不用用数组了,这里想用2个GroupBox,所以用数组

#include<QButtonGroup>
#include<QRadioButton>private:QButtonGroup *pGroup[2];

然后在MainWindow的构造函数中完成代码,解释在后

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);for(int i=0;i<2;i++){pGroup[i]=new QButtonGroup(this);}pGroup[0]->addButton(ui->radioButton,1);pGroup[0]->addButton(ui->radioButton_2,2);pGroup[0]->addButton(ui->radioButton_3,3);connect(pGroup[0],SIGNAL(idClicked(int)),this,SLOT(p_group(int)));ui->radioButton_2->setChecked(true);
//其余的pGroup[]同理}

先将所有pGroup初始化 

然后把想放在一起的Radio Button添加到一个pGroup里,后面的数字表示自定对这个按钮的int编号,这个编号会方便后面对按钮的管理

连接槽函数并完成槽函数void MainWindow::p_group(int id),这里手动代码完成和连接,可以参考这个的后半部分3、4点->在VS2022中使用QT,后面举例槽函数。需要注意的是,SIGNAL在参考链接视频里用的是SIGNAL(buttonClicked(int)),可能是版本更新,现在Qt6的想用按钮的编号直接操作没有那个函数了,有SIGNAL(idClicked(int))

最后确认初始的选择是哪个按钮,也可以不做这个,刚开始无确认值

3.槽函数

在<QButtonGroup>管理下可以实现很多功能,比如知道哪个按钮被点击,代码如下

void MainWindow::p_group_0(int id)
{QString res;if(id>=1 && id<3){res=QString("分组1的radio %1").arg(id);}//qDebug()<<res;ui->label_2->setText(res);
}

哪个按钮被点,这里槽函数的参数就是之前编好号的哪个,并在label中输出对应的文本 ,

这一个槽函数可以管理所有按钮,只是每个GroupBox都需要connect()到这个函数,所以可以限制编号大小来确定是哪个GroupBox,当然也可以分开单独实现

参考:

【Qt学习系列】17_Qt单选框

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687073.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ThinkPHP框架使用工厂模式对接多个物流公司下单接口架构示例(php7.0及以上)

对接多个物流公司下单接口和获取物流支持目的地接口&#xff0c;用ThinkPHP框架使用工厂模式写了一个示例&#xff0c;包括如何创建目录及文件命名方式。 首先&#xff0c;我们需要定义一个物流公司的接口&#xff08;Interface&#xff09;&#xff1a; // application/Inte…

快速实现用户认证:使用Python和Flask配合PyJWT生成与解密Token的教程及示例代码

生成token 与解密 token 和 拦截器 #学习交流 访问 # https://v.iiar.cnimport jwt import datetime from models import XUser from flask import request, jsonify from functools import wrapsSECRET_KEY XPay# 创建token def generate_token(user_id):try:payload {exp:…

如何在多头自注意力机制的交叉学习中引入对于物理、生理、心理世界客观规律的对照验证...

要在多头自注意力机制的交叉学习中引入对于物理世界客观规律的对照验证&#xff0c;可以考虑以下方法&#xff1a; 1、引入物理模型 首先&#xff0c;建立一个物理模型&#xff0c;该模型能够描述物理世界中的客观规律。这个模型可以是已知的科学理论&#xff0c;也可以是通过实…

Nginx静态内容和反向代理

文章目录 一、Nginx介绍1. 简介2. 相关网站3. 配置文件 二、location说明1. 匹配规则2. 替换匹配部分 三、Nginx代理1. Spring服务代理2. MySQL代理3. MinIO代理 一、Nginx介绍 1. 简介 Nginx&#xff08;读作“engine x”&#xff09;是一个高性能的开源HTTP和反向代理服务器…

(2.2w字)前端单元测试之Jest详解篇

Jest Jest 概述 Jest是一个领先的JavaScript测试框架&#xff0c;特别适用于React和Node.js环境。由Facebook开发&#xff0c;它以简单的配置、高效的性能和易用性而闻名。Jest支持多种类型的测试&#xff0c;包括单元测试、集成测试和快照测试&#xff0c;后者用于捕获组件或…

阿里云轻量应用服务器和ECS云服务器区别(官方文档)

阿里云轻量应用服务器和ECS云服务器有啥区别&#xff1f;轻量应用服务器是轻量级服务器&#xff0c;轻量适合个人开发者或中小企业使用&#xff0c;清理使用简单、可视化运维更容易上手&#xff1b;ECS云服务器专业级服务器&#xff0c;适合企业级应用&#xff0c;通用型、计算…

python 将普通文件转换为ts文件,用udp-ts 发送

将普通文件转换为TS文件并使用UDP发送是一个相对复杂的过程&#xff0c;因为你需要遵循TS流的格式来封装原始数据。TS流通常用于封装视频和音频数据&#xff0c;包含固定的包头和负载数据。对于简单的文本或二进制文件&#xff0c;将其转换为TS流并不常见&#xff0c;因为TS是为…

Math--API

Math 数学工具类&#xff0c;提供一些对数据进行操作的静态方法 Math类常用API 方法名说明public static int abs(int a)获取参数绝对值public static double ceil(double a)向上取整public static double floor(double a)向下取整public static int round(f…

Rust 学习笔记 - 注释全解

前言 和其他编程语言一样&#xff0c;Rust 也提供了代码注释的功能&#xff0c;注释用于解释代码的作用和目的&#xff0c;帮助开发者理解代码的行为&#xff0c;编译器在编译时会忽略它们。 单行注释 单行注释以两个斜杠 (//) 开始&#xff0c;只影响它们后面直到行末的内容…

如何在 Angular 中使用 Flex 布局

介绍 Flex Layout 是一个组件引擎&#xff0c;允许您使用 CSS Flexbox 创建页面布局&#xff0c;并提供一组指令供您在模板中使用。 该库是用纯 TypeScript 编写的&#xff0c;因此不需要外部样式表。它还提供了一种在不同断点上指定不同指令以创建响应式布局的方法。 在本教…

多数据源支持

平台倡导分布数据库&#xff0c;最简单的分库逻辑是按业务领域&#xff0c;例如人力资源系统一个库&#xff0c;客户关系管理一个库&#xff08;举个例子而已&#xff0c;在平台正式的系统中&#xff0c;人力资源系统又细分为核心库、绩效管理库、薪资管理库等&#xff09;。一…

springboot/ssm公司进销存系统Java商品销售出入库系统

springboot/ssm公司进销存系统Java商品销售出入库系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#x…

基于PPNSA+扰动算子的车间调度最优化matlab仿真,可以任意调整工件数和机器数,输出甘特图

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于PPNSA扰动算子的车间调度最优化matlab仿真,可以任意调整工件数和机器数,输出甘特图和优化收敛曲线。 2.测试软件版本以及运行结果展示 MATLAB2022a版本运行…

【JavaScript】面试手写题精讲之数组(上)

专题缘由 该专题主要是讲解我们在面试的时候碰到一些JS的手写题, 确实这种手写题还是比较恶心的。有些时候好不容易把题目写出来了&#xff0c;突然面试官冷不丁来一句有没有更优的解法&#xff0c;直接让我们僵在原地。为了解决兄弟们的这些困扰&#xff0c;这个专题于是就诞…

python入门:常用模块—jsonpickle模块

什么叫序列化&#xff1f; 序列化是指把内存里的数据类型转变成字符串&#xff0c;以使其能存储到硬盘或通过网络传输到远程&#xff0c;因为硬盘或网络传输时只能接受bytes 为什么要序列化&#xff1f; 你打游戏过程中&#xff0c;打累了&#xff0c;停下来&#xff0c;关掉…

随想录刷题笔记 —二叉树篇6 513找树左下角的值 112路径总和 106中序后序构造二叉树

513找树左下角的值 找出该二叉树的 最底层 最左边 节点的值 解法一&#xff1a;队列——层次遍历 class Solution {public int findBottomLeftValue(TreeNode root) {Queue<TreeNode> treeNodes new LinkedList<>();treeNodes.offer(root);int count 1;int re…

贪心算法之合并区间

“任世界多宽广&#xff0c;停泊在这港口~” 区间问题&#xff0c;涉及到最多的就是 取交集 和 并集的概念。我们使用C排序算法后&#xff0c;其默认规则就是按照 “左排序”进行的。因而&#xff0c;我们实质上注意的是每一个区间的 右端点&#xff0c;根据题目要求&#xff…

蓝桥杯:C++模运算、快速幂

模运算 模运算是大数运算中的常用操作。如果一个数太大&#xff0c;无法直接输出&#xff0c;或者不需要直接输出&#xff0c;则可以对它取模&#xff0c;缩小数值再输出。取模可以防止溢出&#xff0c;这是常见的操作。 模是英文mod的音译&#xff0c;取模实际上是求余。 取…

表达式 副作用 序列点

语句分类 标号语句(标签&#xff0c;常与goto配合使用)复合语句(块)表达式语句(赋值表达式语句、函数表达式语句等)选择语句迭代语句(循环)跳转语句(return,break,continue) 其中复合语句(块)可视为单个语句。因此while和for循环之后加的是单个语句(简单语句、复合语句、空语…

树莓派:使用mdadm为重要数据做RAID 1保护

树莓派作为个人服务器可玩性还是有点的。说到服务器&#xff0c;在企业的生成环境中为了保护数据&#xff0c;基本上都会用到RAID技术。比如&#xff0c;服务器两块小容量但高性能的盘做个RAID-1按装操作系统&#xff0c;余下的大容量中性能磁盘做个RAID-5或者RAID-6存放数据。…