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

相关推荐
人邮异步社区1 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大2 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf
ttwuai2 小时前
Cursor 生成 CRUD 后,Go 后台接口别只测 200:JWT、RBAC 和 tenant_id 怎么验
开发语言·后端·golang
এ慕ོ冬℘゜2 小时前
前端基础:什么是时间戳?JS获取时间戳三种方法与实战用途
开发语言·前端·javascript
执明wa2 小时前
LayoutInflater详解: XML是如何变成View的?
android·xml·开发语言·android studio
一次旅行3 小时前
Python+大模型端到端自动化日报系统
开发语言·python·自动化
噢,我明白了4 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
mabing9934 小时前
Qt 生成条纹图
开发语言·qt
蓝悦无人机4 小时前
C++基础 — 函数总结
开发语言·c++
糖果店的幽灵5 小时前
langgraph的 MessagesState 解读
java·开发语言·人工智能·windows·langgraph