QT 信号和槽函数

ops/2024/9/23 7:38:10/
  1. 信号和槽函数介绍
conncet(sender, signal, receiver, slot)
/*
* 1. 信号发出者;
* 2. 信号;
* 3. 信号接收者;
* 4. 接受到信号执行任务; 槽函数
*/
  1. 自定义信号和槽函数
    场景 :老师饿了,学生请客;
    step1: 定义学生类, 老师类;右键新建文件即可;
    在这里插入图片描述
    step2: 在老师类中申请信号,在学生类中申明并实现槽函数;
    teacher.h 声明信号, 返回值void, 参数可以存在,仅声明不需要实现,可以重载;
    在这里插入图片描述
    stu.h 声明,在对应.cpp实现
    在这里插入图片描述
void Stu::treat()
{qDebug()<<"请吃饭";
}

step3: 创建老师对象 学生对象 并连接

在这里插入图片描述
在这里插入图片描述
step4:触发信号: 老师下课;
在这里插入图片描述
在这里插入图片描述
信号连接信号
点击按钮的时候发送信号

    ui->setupUi(this);QPushButton *button = new QPushButton("点击", this);this->resize(600, 400);this->teacher = new Teacher(this);this->stu = new Stu(this);connect(teacher, &Teacher::hungry, stu, &Stu::treat);connect(button, &QPushButton::clicked, teacher, &Teacher::hungry);

在这里插入图片描述
点击的时候就会触发信号;

拓展:重载的信号和槽函数 传参

重新写信号声明 ,带参数;
在这里插入图片描述
重新写槽函数申明 及定义 带参数
在这里插入图片描述
由于函数重载了,所以需要利用函数指针指向函数地址,然后在做连接;

    this->teacher = new Teacher();this->stu = new Stu();void (Teacher::*teachersignal)(QString) = &Teacher::hungry;void (Stu::*stuslot)(QString) = &Stu::treat;connect(teacher, teachersignal, stu, stuslot);// connect(teacher, &Teacher::hungry, stu, &Stu::treat);// connect(button, &QPushButton::clicked, teacher, &Teacher::hungry);classOver();

http://www.ppmy.cn/ops/114656.html

相关文章

创建索引遇到这个Bug,19c中还没有修复

莫名其妙的错误 近日在创建索引时突然报出 ORA-01792 错误&#xff0c;根据错误提示&#xff0c;显示表上的列数量超过了1000&#xff0c;但是显然这个表上并没有这么多的列。 [oraclemyora19c ~]$ oerr ora 01792 01792, 00000, "maximum number of columns in a table…

Linux驱动开发 ——架构体系

只读存储器&#xff08;ROM&#xff09; 1.作用 这是一种非易失性存储器&#xff0c;用于永久存储数据和程序。与随机存取存储器&#xff08;RAM&#xff09;不同&#xff0c;ROM中的数据在断电后不会丢失&#xff0c;通常用于存储固件和系统启动程序。它的内容在制造时或通过…

GRE隧道协议学习笔记

使用场景 分布在不同地理位置的总公司和分公司怎么通过网络连接起来&#xff1f; 可以使用ISP网络连接。在豆包中可以看到如下回答通俗的讲就是运营商收费提供网络服务&#xff0c;有个人的有企业的&#xff0c;企业的很贵 为什么要使用GRE隧道 当然你也可以用其他隧道协议…

rocky9.2的lvs的NAT模式下的基本使用的详细示例

文章目录 前言什么是LVS?&#xff08;Linux Virtual Server&#xff09;LVS的组成1. 负载均衡器&#xff08;Load Balancer&#xff09;2. 后端服务器池&#xff08;Real Servers&#xff09;3. IPVS&#xff08;IP Virtual Server&#xff09;4. 调度算法&#xff08;Schedul…

Android 10.0 系统添加自定义屏保并设置为默认屏保功能实现

1.前言 在10.0的系统rom定制化开发中,在进行相关项目开发的过程中,由于需要在系统锁屏休眠的时候,需要显示 相关的背景,就是自定屏保功能,所以就需要添加自定义的屏保,然后在上一篇已经实现在进行锁屏休眠的时候 进入屏保的功能,这里就介绍下自定义屏保和设置默认屏保功…

Wireshark学习使用记录

wireshark 是一个非常好用的抓包工具&#xff0c;使用 wireshark 工具抓包分析&#xff0c;是学习网络编程必不可少的一项技能。 原理 Wireshark使用的环境大致分为两种:一种是电脑直连互联网的单机环境&#xff0c;另外一种就是应用比较多的互联网环境&#xff0c;也就是连接…

利用WPF绘制轮廓并保存为图片

1.前言 WPF作为显示工具也挺好用&#xff0c;用C#开发应用软件会比较省力&#xff0c;当然也有其缺点&#xff0c;如在对效率要求较高的情况下有性能问题&#xff0c;本文记录用WPF绘制轮廓并保存为图片相关内容。 显示效果也还不错&#xff0c;满足调试使用了&#xf…

k8s下的网络通信与调度

目录 一、k8s网络通信 1、k8s通信整体架构 2、flannel网络插件 &#xff08;1&#xff09;flannel跨主机通信原理 &#xff08;2&#xff09;flannel支持的后端模式 3、calico网络插件 &#xff08;1&#xff09;简介 &#xff08;2&#xff09;网络架构 &#xff08;…