【QT】:QT实现一个信号与多个槽的关联和实现多个信号与一个槽的关联

2023-11-14

这个问题很简单,我们定义一个按钮就是一个信号,而相应的事件就是一个槽。

而这里用到的方法就是connect。
connect的两个实例如下:

connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(FoodIsComing()));
    connect(ui->pushButton_4,SIGNAL(clicked()),this,SLOT(FoodIsComing()));
    connect(ui->pushButton_5,SIGNAL(clicked()),this,SLOT(FoodIsComing()));

这个就是多个信号对应的一个槽。

给出的一个代码如下:

#include "widget.h"
#include "ui_widget.h"
#include <QMessageBox>
#include <QDebug>
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(FoodIsComing()));
    connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(FoodIsComing()));
    connect(ui->pushButton_4,SIGNAL(clicked()),this,SLOT(FoodIsComing()));
    connect(ui->pushButton_5,SIGNAL(clicked()),this,SLOT(FoodIsComing()));
 //   connect(ui->lineEdit,SIGNAL(textEdited(QString)),this,SLOT(PrintText(QString)));
}

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

void Widget::FoodIsComing(){
   QString get = this->sender()->objectName();
   qDebug()<<get; //打印源头对象名称
   QString strMsg;
   if("pushButton_3" == get){
       strMsg = "hello,welcome ,老王";
   }
   else if("pushButton_4" == get){
       strMsg = "hello,welcome ,老李";
   }
   else if("pushButton_5" == get){
       strMsg = "hello,welcome ,老刘";
   }
   else{
       return ;
   }
   //显示送餐消息
   QMessageBox::information(this,tr("food"),strMsg);
}

void Widget::on_pushButton_2_clicked()     //我饿了
{
    QMessageBox::information(this,tr("餐吃完了"),tr("注意,我吃饱了"));
}


把三个信号关联到了一个槽里面,然后通过槽获得对象名,然后解析成不同的字符表达出来

通过这句话能够解析出名字:
QString get = this->sender()->objectName();
输出结果:
这里写图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【QT】:QT实现一个信号与多个槽的关联和实现多个信号与一个槽的关联 的相关文章

随机推荐

  • 实战中的 Promise 和 Future

    上一章介绍了 Future 类型 以及如何用它来编写高可读性 高组合性的异步执行代码 Future 只是整个谜团的一部分 它是一个只读类型 允许你使用它计算得到的值 或者处理计算中出现的错误 但是在这之前 必须得有一种方法把这个值放进去 这
  • Python正则表达式re模块学习遇到的问题

    Python正则表达式处理的组是什么 Python正则表达式处理中的匹配对象是什么 Python匹配对象的groups groupdict和group之间的关系 Python正则表达式re match r a1b2c3 匹配结果为什么是 c
  • Swiper、vue-awesome-swiper 插件使用

    Swiper在PC端和移动端都适用 官方网站 Swiper中文网首页 官方 vue2 配合 swiper5或6版本 vue3 可以使用 swiper8最新版本 一 Swiper插件 Vue React Angular框架都可以使用 1 使用
  • 【计算机组成原理】实验4:存储器读写实验

    实验内容 一 实验原理 存储器是计算机的存储部件 用于存放程序和数据 存储器是计算机信息存储的核心 是计算机必不可少的部件之一 计算机就是按存放在存储器中的程序自动有序不间断地进行工作 本系统从提高存储器存储信息效率的角度设计数据通路 按现
  • wms系统与物联网发展趋势密切相关

    物联网 简称IoT 是指通过各种信息传感器 射频识别技术 全球定位系统 红外感应器 激光扫描器等各种装置与技术 实时采集任何需要监控 连接 互动的物体或过程 采集其声 光 热 电 力学 化学 生物 位置等各种需要的信息 通过各类可能的网络接
  • 海德拉 暴力破解ssh密码

    上一篇博客写到怎么有效地防护ssh密码遭到暴力破解 今天给大家介绍下如何暴力破解ssh密码 作为一名云计算工程师 懂得如何防护比如何攻击更重要 hydra是世界顶级密码破解工具 支持几乎所有协议的在线密码破解 密码能否被破解取决于密码字典是
  • 华为OD机试真题-优雅子数组Python实现【2023.Q1】

    题目内容 如果一个数组中出现次数最多的元素出现大于等于K次 被称为K 优雅数组 k也可以被称为优雅阈值 例如 数组1 2 3 1 2 3 1 它是一个3 优雅数组 因为元素1出现次数大于等于3次 数组1 2 3 1 2就不是一个3 优雅数组
  • MySQL 日期格式化

    本文旨在以最快的速度 提供你需要的 MySQL 日期格式化方案 1 将时间格式化为 YYYY mm dd HH ii ss 格式 我想你要搜的就是这个 哈哈哈 SELECT DATE FORMAT NOW Y m d H i s 效果如图
  • python中dump与dumps的区别

    Python3 JSON模块的使用 参考链接 https docs python org 3 library json html 这里只是介绍最常用的dump dumps和load loads import json 自定义了一个简单的数据
  • flume使用(二):采集远程日志数据到MySql数据库

    本文内容可查看目录 本文内容包含单节点 单agent 和多节点 多agent 采集远程日志 说明 一 环境 linux系统 Centos7 Jdk 1 7 Flume 1 7 0 二 安装 linux中jdk mysql的安装不多赘述 fl
  • Redis清除缓存命令

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 方案1 windows操作系统 进入redis的安装目录 双击redis cli exe 执行 dbsize 执行 flushall 退出 方案2 linux操作系统 进入
  • vue-quill-editor富文本编辑器使用及配置更改

    quill editor支持了常用的功能 但是有2点 需要我们自己定制一下 vue集成quill editor很简单 网上有很多介绍 自行百度下即可 1 图片上传 因为编辑器默认是将图片转成base64存储的 而我们实际开发需要将图片存在自
  • 怎么给PDF签名?来看看这几个方法吧

    年关将至 这几天我所在的部门每个人都很忙碌 都在对今天年尾的申报文件以及明年的商家合同进行处理 今天 领导让我将几份商家合同扫描成PDF电子版本 同时将负责人签名导入文件中 不过由于我之前只接触过扫描文档 并不会在电子文件上导入签名 于是我
  • 终于搞懂了 @Configuration 和 @Component 的区别

    一句话概括就是 Configuration 中所有带 Bean 注解的方法都会被动态代理 因此调用该方法返回的都是同一个实例 理解 调用 Configuration类中的 Bean注解的方法 返回的是同一个示例 而调用 Component类
  • 寓教于乐——PyGame游戏编程,Python小游戏制作实战教学

    Python非常受欢迎的一个原因是它的应用领域非常广泛 其中就包括游戏开发 而是用Python进行游戏开发的首选模块就是PyGame 1 初识Pygame PyGame是跨平台Python模块 专为电子游戏设计 包含图像 声音等 创建在SD
  • javaScript 实现冒泡排序与快速排序

    javaScript 实现冒泡排序与快速排序 下面代码是否正确 有没有大神帮忙看下 谢谢
  • Pandas数据处理(续)/数据聚合[groupby+sum,mean/apply/transform]

    5 数据聚合 重点 数据聚合是数据处理的最后一步 通常是要使每一个数组生成一个单一的数值 数据分类处理 分组 先把数据分为几组 用函数处理 为不同组的数据应用不同的函数以转换数据 合并 把不同组得到的结果合并起来 数据分类处理的核心 gro
  • FPGA图像处理——YCbCr灰度转换

    之前的单通道灰度转换作为一个图像处理FPGA框架搭建完成后的一个简单效果的测试 其图像的层次感有待提高 图像处理灰度转换用的更多的还是YCbCr 一 YCbCr YCbCr或Y CbCr有的时候会被写作 YCBCR或是Y CBCR Y 为颜
  • 如何一启动web程序,直接访问某个controller里的方法进而跳转页面

    随便写一个JSP页面 在页面里面在转发到你要的Action web xml 里面添加
  • 【QT】:QT实现一个信号与多个槽的关联和实现多个信号与一个槽的关联

    这个问题很简单 我们定义一个按钮就是一个信号 而相应的事件就是一个槽 而这里用到的方法就是connect connect的两个实例如下 connect ui gt pushButton 3 SIGNAL clicked this SLOT