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等,设置单选,也可以设置多选

相关推荐
C^h14 小时前
c++ string
开发语言·c++
raindayinrain14 小时前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
学逆向的14 小时前
C++ 合并命名空间
开发语言·c++·网络安全
Zhao-Jichao14 小时前
VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具
开发语言·c++
学逆向的15 小时前
C 局部静态变量
c语言·开发语言·网络安全
小徐不徐说15 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
大都督会赢的15 小时前
C++第一节课
开发语言·c++
“AI国潮设计-小江”15 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
小王C语言16 小时前
Qt常用控件:容器类控件,标题分组框、标签页(浏览器标签)
开发语言·qt
TMedical16 小时前
MedPlanning 截骨模拟矫形功能
c++·图像处理·人工智能·qt·健康医疗