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

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.lryc.cn/news/340565.html

相关文章:

  • Vue项目管理器创建项目
  • PHP-extract变量覆盖
  • 研究表明,全球互联网流量竟有一半来自机器人
  • 橡胶衬板的更换与安装
  • Compose 简单组件
  • 第十一届蓝桥杯省赛真题(C/C++大学B组)
  • Qt 实战(2)搭建开发环境 | 2.1、Windows下安装QT
  • 校园通用型发生网络安全事件解决方案
  • 数通HCIE考试分享:考前心态很重要,心情放松好过一次练习
  • GVRP协议与动态、静态vlan
  • shell脚本启动jar包
  • qt 元对象系统及属性系统
  • 2024年MathorCup数学建模A题移动通信网络中PCI规划问题解题文档与程序
  • Learn something about front end——颜色
  • 各大厂都推出鸿蒙APP了,你就一定要学习一下鸿蒙APP测试了!
  • ppt里的音乐哪里来的?
  • 【算法】标签算法及其运作流程
  • 【数据结构】习题之链表的回文结构和相交链表
  • 5个常见的前端手写功能:New、call apply bind、防抖和节流、instanceof、ajax
  • WPF 跨线程-Dispatcher:详解与示例
  • [c++][netcdf]通过c\c++读取字段的scale_factor与add_offset
  • 技术速递|.NET 智能组件简介 – AI 驱动的 UI 控件
  • 保护C#代码的艺术:深入浅出代码混淆技术
  • 多线程CountDownLatch使用
  • 高校心理教育辅导系统|基于Springboot的高校心理教育辅导系统设计与实现(源码+数据库+文档)
  • Rockchip Android13 Vold(三):App层
  • 数据结构——单链表(C语言版)
  • :app debug:armeabi-v7a failed to configure C/C++
  • 计算机网络——应用层(4)DHCP和套接字编程
  • TF-IDF演算法(Term Frequency - Inverse Document Frequency)最好懂筆記