QT进阶------------------QPushButton(快速添加按钮与使用)

1、解决如何快速的添加按钮

      在qt中,通常我们喜欢一个按钮添加一个信号与槽,但是这样写太过浪费时间。要是多个按钮那不是要写30个信号与槽,说实话,我不太喜欢这样。

     在ui中,只要拖动按钮,会自动生成按钮的名字,一般都是pushButton,pushButton_2,pushButton_3这样,这样写多了,别人看你的代码与ui都很繁杂,这样写就显得很low,别人看很不方便,你自己写模块功能,按钮多了,每次都要切到ui看一样,这样都很烦。

     在qt中,有一个类叫按钮组,提供按钮编号的功能,把一类按钮可以放在一个组中,这样一个组一个模块,方便管理与减少代码量。

   使用QT的类:

   

#include<QButtonGroup>

   声明按钮组:

QButtonGroup   *rightBtnGroup;   //右侧

实例化按钮组:

  rightBtnGroup = new QButtonGroup();

添加多个按钮:

 for (int i = 37; i <= 43; ++i) {QString buttonName = QString("pushButton_%1").arg(i);QPushButton *button = findChild<QPushButton *>(buttonName); // 在ui中查找按钮if (button) {rightBtnGroup->addButton(button, i); // 将按钮添加到按钮组中,并指定 ID}}

注意:ui中,一般默认第一个按钮是pushButton,改成pushButton_1,格式保持一致。

信号与槽

connect(rightBtnGroup, &QButtonGroup::idClicked, this, &xxxx::rightButtonGroupClicked);  //右侧按钮

槽函数

void yourclass::rightButtonGroupClicked(int num)
{if(num==37){xxx}else  if(num==38){xxx}else  if(num==39){xxx}else  if(num==40){xxx}else  if(num==41){xxx}else  if(num==42){xxxelse  if(num==43){xxx}
}

2、好处

1、减少代码量

2、一类按钮可以放在一个按钮组中,写一些界面跳转功能,比较简单的小功能,真的很方便。

3、按钮组除了可以添加pushButton,也可以添加ToolButton等,设置单选,也可以设置多选

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

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

相关文章

智能运维场景 | 科技风险预警,能实现到什么程度?

[ 原作者&#xff1a;擎创夏洛克&#xff0c;本文略做了节选和改编 ] 每次一说到“风险预警”&#xff0c;就会有客户问我们能做怎样的风险预警。实际上在智能运维厂商来说&#xff0c;此风险非彼风险&#xff0c;不是能做银行的业务上的风险预警&#xff08;比如贷款风险等&a…

golang的引用和非引用总结

目录 概述 一、基本概念 指针类型&#xff08;Pointer type&#xff09; 非引用类型&#xff08;值类型&#xff09; 引用类型&#xff08;Reference Types&#xff09; 解引用&#xff08;dereference&#xff09; 二、引用类型和非引用类型的区别 三、golang数据类型…

深度学习500问——Chapter07:生成对抗网络(GAN)(1)

文章目录 7.1 GAN基本概念 7.1.1 如何通俗理解GAN 7.1.2 GAN的形式化表示 7.1.3 GAN的目标函数是什么 7.1.4 GAN的目标函数和交叉熵有什么区别 7.1.5 GAN的Loss为什么降不下去 7.1.6 生成式模型、判别式模型的区别 7.1.7 什么是mode collapsing 7.1.8 如何解决mode collapsing …

论文| Convolutional Neural Network-based Place Recognition - 2014

2014-Convolutional Neural Network-based Place Recognition

PID c++算法学习和实现

原理图&#xff1a; &#xff08;1&#xff09;位置式PID 是1&#xff1a;当前系统的实际位置&#xff0c;与你想要达到的预期位置的偏差&#xff0c; 2&#xff1a;进行PID控制,误差会一直累加&#xff0c;会使当前输出与过去的所有输入相关&#xff0c;输入uk出错&#xff…

为什么别人能拿到大厂offer?你应该明白这些java面试技巧!

言简意赅的说明自己的工作时间&#xff0c;擅长技术栈和自己的工作预期。 注意准备两份自我介绍&#xff0c;一个是跟面试官说的&#xff0c;一个是跟HR说的。 项目经验介绍 选一个自己感觉是最成功的&#xff0c;而且还是最有把握的项目&#xff0c;讲给面试官。 简单说下…

Lvgl9 WindowsSimulator Visual Studio2017

因为在操作过程中遇到了一些错误&#xff0c;所以将操作及解决问题的过程记录下来。 一、下载lv_port_pc_visual_studio github链接:GitHub - lvgl/lv_port_pc_visual_studio: Visual Studio projects for LVGL embedded graphics library. Recommended on Windows. Linux su…

Linux系统使用Docker部署MeterSphere并实现公网访问本地测试平台

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

JavaWeb的简单了解

一、什么是JavaWeb 1. JavaWeb&#xff1a;是使用jsp和JavaBean技术开发动态网站的 2.是什么动态网站 和html的区别在哪&#xff1a;thml开发的网站只能在你自己电脑上访问其他人可以访问 3.那怎么开发JavaWeb&#xff1a;我们首先需要eclipse还需要Tomcat 小tips&am…

跨站请求伪造漏洞(CSRF)

什么是CSRF CSRF&#xff08;Cross-Site Request Forgery&#xff09;&#xff0c;也被称为 one-click attack 或者 session riding&#xff0c;即跨站请求伪造攻击。 漏洞原理 跨站请求伪造漏洞的原理主要是利用了网站对用户请求的验证不严谨。攻击者会在恶意网站中构造一个…

正信法律:老板一直拖欠工资怎么办

在职场中&#xff0c;薪酬是劳动者辛勤工作的直接回报&#xff0c;然而不幸的是&#xff0c;拖欠工资的现象时有发生。面对老板一直拖欠工资的困境&#xff0c;员工应采取一系列明智而有效的措施来维护自己的合法权益。 与雇主进行沟通。清晰、冷静地表达自己的诉求&#xff0c…

电脑怎么下载微信小程序的视频

电脑怎么下载微信小程序中的视频资源&#xff0c;本篇文章就教大家如何下载微信小程序的视频资源的方法&#xff0c;这里要借助一个工具:下载高手 下载高手链接&#xff1a;https://pan.baidu.com/s/1qJ81sNBzzzU0w6DWf-9Nxw?pwdl09r 提取码&#xff1a;l09r --来自百度网盘…

个人在线要饭网站源码

源码简介 施舍也要讲究便捷&#xff0c;如果能像购物一样&#xff0c;那也是很美的一件事情&#xff1b; 接入了支付宝当面付系统. 安装环境 php5.6 Nginx 安装教程 1.上传源码压缩包到网站目录并解压即可 2.支付配置 /修改文件 app/config.php /*** 请填写以下配置信…

互联网大厂ssp面经之路:计算机网络part1

1. 计算机网络的组成部分有哪些&#xff1f; a. 硬件设备&#xff1a;计算机网络由各种硬件设备组成&#xff0c;包括计算机、服务器、路由器、交换机、网卡等。这些设备通过物理连接&#xff08;如网线、光纤&#xff09;相互连接。 b. 协议&#xff1a;计算机网络中的通信需…

大数据数仓建模中星型模型和雪花模型,你了解吗?

这两种模型描述的都是数仓建模中事实表和维度表之间的拆分关系&#xff1b;星型和雪花的形状相同的特点都是一个中心向四周辐射&#xff0c;中心点代表着事实表&#xff0c;向四周辐射的点代表维度表&#xff1b;这两种模型的不同点在于星型模型的维度只辐射一次&#xff0c;雪…

Jquery下载静态web文件

使用jQuery的AJAX下载ZIP文件 在jQuery中&#xff0c;使用$.ajax方法下载ZIP文件通常不是直接的做法&#xff0c;因为$.ajax主要用于处理服务器返回的数据&#xff0c;而不是直接处理文件下载。然而&#xff0c;你可以通过$.ajax请求一个服务器端脚本&#xff0c;该脚本会返回…

vue商城项目vue shop vite

Vue Shop 是一个基于 Vue.js 框架构建的电子商务平台&#xff0c;它利用了 Vue 的响应式数据绑定和组件化的特点&#xff0c;为用户提供了一种快速开发和部署在线商店的解决方案。Vite 是一种现代化的前端构建工具&#xff0c;它提供了快速的冷启动、即时模块热更新&#xff08…

域名新手投资需要知道的几个问题?

投资域名可以是一项令人兴奋的商业活动&#xff0c;它既有可能带来意想不到的高回报&#xff0c;也伴随着一定的风险。对于域名投资新手来说&#xff0c;掌握一些基础知识和注意事项是非常重要的。以下是域名投资新手需要知道的几个关键问题。 1.域名的价值是如何决定的&#…

数据安全之路:Databend 用户与角色管理应用

Databend 目前支持基于角色的访问控制 (RBAC) 和 自主访问控制 (DAC) 模型&#xff0c;用于访问控制功能。 通过本指南&#xff0c;我们会了解权限和角色在 Databend 中的基本概念&#xff0c;以及如何管理角色、继承角色与建立层级、设置默认角色以及所有权的重要性。这些功能…

springboot-开源项目-追踪法-简单有效,从F12到SQL数据库表

使用的技术栈&#xff1a;springbootmybatis&#xff0c;edge浏览器 插件&#xff1a;MybatisX 第一步&#xff1a; 按F12,选择网络 第二步&#xff1a; 进入IDEA编辑器&#xff0c;键盘按两次shift键&#xff0c;点击第一个&#xff0c;快速定位到该操作 3&#xff1a; 我…