QT 信号和槽 多对一关联示例,多个信号,一个槽函数响应,多个信号源如何绑定一个槽函数

三个顾客 Anderson、Bruce、Castiel 都要订饭,分别对应三个按钮,点击一个按钮,就会弹出给该顾客送饭的消息。注意这个例子只使用一个槽函数,而三个顾客名称是不一样的,弹窗时显示的消息不一样,这需要一些 技巧,下面我们开始这个示例的学习。

编辑好界面之后保存。这样三个信号的源头就设置好了,下面需要编写接收它们信号的槽函数。我们回到 QtCreator 的代码编辑模式,打开头文件 widget.h,向类里添加槽函数声明:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

public slots:   //添加槽函数进行弹窗
    void FoodIsComing();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

 FoodIsComing 就是我们需要添加的槽函数,添加好声明之后,下面再向 widget.cpp 添加代码:

#include "widget.h"
#include "ui_widget.h"
#include <QMessageBox>
#include <QDebug>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    //三个按钮的信号都关联到 FoodIsComing 槽函数
    connect(ui->pushButtonAnderson, SIGNAL(clicked()), this, SLOT(FoodIsComing()));
    connect(ui->pushButtonBruce, SIGNAL(clicked()), this, SLOT(FoodIsComing()));
    connect(ui->pushButtonCastiel, SIGNAL(clicked()), this, SLOT(FoodIsComing()));
}

Widget::~Widget()
{
    delete ui;
}

void Widget::FoodIsComing()
{
    //获取信号源头对象的名称
    QString strObjectSrc = this->sender()->objectName();
    qDebug()<<strObjectSrc; //打印源头对象名称

    //将要显示的消息
    QString strMsg;
    //判断是哪个按钮发的信号
    if( "pushButtonAnderson" == strObjectSrc )
    {
        strMsg = tr("Hello Anderson! Your food is coming!");
    }
    else if( "pushButtonBruce" == strObjectSrc )
    {
        strMsg = tr("Hello Bruce! Your food is coming!");
    }
    else if( "pushButtonCastiel" == strObjectSrc )
    {
        strMsg = tr("Hello Castiel! Your food is coming!");
    }
    else
    {
        //do nothing
        return;
    }
    //显示送餐消息
    QMessageBox::information(this, tr("Food"), strMsg);
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

EV24CXXA EEPROM 选型

如何选择一个靠谱的EEPROM? EV24C128A EV24C256A EV24C512A 是用得最多的

在哪里可以制作微信点餐功能呢

在繁忙的都市生活中&#xff0c;餐饮行业作为与人们日常生活息息相关的行业&#xff0c;其服务质量和便捷性一直备受关注。随着科技的不断发展&#xff0c;微信点餐功能以其便捷、高效的特点&#xff0c;逐渐成为了餐饮行业的新宠。今天&#xff0c;就让我们一起探讨微信点餐的…

基于SSM的“本科生毕业设计选题系统”的设计与实现(源码+数据库+文档)

基于SSM的“本科生毕业设计选题系统”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 本科生毕业设计选题系统功能结构图 系统首页界面 课题信…

「漏洞复现」用友NC pagesServlet SQL注入漏洞(XVE-2024-13067)

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

Keil编译bin格式固件方法

打开Option选项卡&#xff0c;选择User&#xff0c;在After Build/Rebuild下面增加以下命令&#xff1a; fromelf.exe --bin -o "L.bin" "#L"

【人工智能】第六部分:ChatGPT的进一步发展和研究方向

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

【管理咨询宝藏124】通过BLM打通前端业务与财务的双轨制设计方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏124】通过BLM打通前端业务与财务的双轨制设计方案 【格式】PDF版本 【关键词】BLM、组织架构设计、流程优化 【核心观点】 - 运用“拉通业务财务…

第54期|GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

图解PHP MySQL:服务器端Web开发入门

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

微服务学习Day9-分布式事务Seata

文章目录 分布式事务seata引入理论基础CAP定理BASE理论 初识Seata动手实践XA模式AT模式TCC模式SAGA模式 高可用 分布式事务seata 引入 理论基础 CAP定理 BASE理论 初识Seata 动手实践 XA模式 AT模式 TCC模式 Service Slf4j public class AccountTCCServiceImpl implements A…

AI论文:如何利用AI工具撰写毕业论文?

写作这件事一直让我们从小学时期就开始头痛&#xff0c;初高中时期800字的作文让我们焦头烂额&#xff0c;一篇作文里用尽了口水话&#xff0c;拼拼凑凑才勉强完成。 大学时期以为可以轻松顺利毕业&#xff0c;结果毕业前的最后一道坎拦住我们的是毕业论文&#xff0c;这玩意不…

嵌入式C语言--Pragma Section与Map文件

嵌入式C语言–Pragma Section与Map文件 嵌入式C语言--Pragma Section与Map文件 嵌入式C语言--Pragma Section与Map文件一. Pragma修饰符二. Map文件1&#xff09;什么是map文件2&#xff09;map文件的构成3&#xff09;常用的段映射地址4&#xff09;map文件生成 三. Section修…

【安装笔记-20240529-Windows-Wireshark 网络协议分析工具】

安装笔记-系列文章目录 安装笔记-20240529-Windows-Wireshark 网络协议分析工具 文章目录 安装笔记-系列文章目录安装笔记-20240529-Windows-Wireshark 网络协议分析工具 前言一、软件介绍名称&#xff1a;Wireshark主页官方介绍 二、安装步骤测试版本&#xff1a;Wireshark-4…

halcon3d算子之get_circle_pose详解

get_circle_pose -从圆的2D投影角度确定圆的3D姿态。 Description 图像中的每个椭圆都可以解释为一个圆在图像中的透视投影。事实上,对于给定半径的圆,在3D中存在两个不同方向的圆,它们会产生相同的投影。get_circle_pose确定这两个圆的3D位置和方向。首先,每个轮廓由一个…

【优选算法】BFS解决FloodFill算法

一、经验总结 什么是FloodFill算法&#xff1f; FloodFill算法是一种用于填充连通区域的算法&#xff0c;通常用于图像处理和计算机图形学中。它从给定的起始点开始&#xff0c;向周围相邻的像素进行扩散填充&#xff0c;直到遇到边界或者其他指定条件停止。 FloodFill算法还…

H5即时通讯群聊源码无限建群创群/H5聊天系统聊天网站源码/H5语音聊天系统

源码介绍 支持自助建群 管理群 修改群资料支持自动登录 登陆成功可自助修改资料后台可查看群组聊天消息记录支持表情 动态表情 图片发布支持消息语音提醒

6月4(信息差)

&#x1f30d;AI预测极端天气提速5000倍&#xff01;微软发布Aurora&#xff0c;借AI之眼预测全球风暴 &#x1f384;理解老司机&#xff0c;超越老司机&#xff01;LeapAD&#xff1a;具身智能加持下的双过程自驾系统&#xff08;上海AI Lab等&#xff09; 论文题目&#xf…

Java_List集合

特点、特有方法 ArrayList : 有序、可重复、有索引。 LinkedList&#xff1a;有序、可重复、有索引。 底层实现不同&#xff01;适合场景不同&#xff01; List 集合的特有方法 List 集合因为支持索引&#xff0c;所以多了很多索引相关的方法&#xff0c;当然&#xff0c;C…

Java多线程核心工具类

1.Thread类&#xff1a;代表一个线程。你可以通过继承Thread类或实现Runnable接口来创建线程。 2.Executor框架&#xff1a;java.util.concurrent.Executors和java.util.concurrent.Executor接口提供了一种创建和管理线程池的方法&#xff0c;可以减少在创建和销毁线程上的开销…

Hive 基本操作

1.启动Hadoop集群 2.将学生信息上传到/bigdata/hive/hive_stu目录下 查看测试数据 3.进入hive,切换到db_test库&#xff08;如没有&#xff0c;可以先创建 create database db_test&#xff09;