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)
    {
        xxx
    else  if(num==43)
    {
       xxx
    }
}

2、好处

1、减少代码量

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

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

相关推荐
泡海椒31 分钟前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
Beyond_System|系统之外1 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法
景熙55232 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
Bruce_Liuxiaowei4 小时前
Python 实例赋值遮蔽类属性:一个从不报错的静默陷阱
开发语言·python·语法糖
aramae6 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
码行山野赴时序归途9 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表
景熙55239 小时前
单体项目编写思路和落地形式
java·开发语言
计算机毕设定制辅导-无忧学长9 小时前
《基于SpringBoot的未成年人健康知识科普平台的设计与实现》
java·开发语言·vue.js·spring boot·未成年人健康知识科普平台
Ivanqhz10 小时前
Ping-Pong 双缓冲
开发语言·人工智能·python·深度学习·mlir
m0_7345717610 小时前
深入理解C++ RAII
开发语言·c++