QT 信号和槽函数

news/2024/11/14 20:54:19/
  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/news/1529354.html

相关文章

【超详细】基于YOLOv8训练无人机视角Visdrone2019数据集

主要内容如下&#xff1a; 1、Visdrone2019数据集介绍 2、下载、制作YOLO格式训练集 3、模型训练及预测 4、Onnxruntime推理 运行环境&#xff1a;Python3.8&#xff08;要求>3.8&#xff09;&#xff0c;torch1.12.0cu113&#xff08;要求>1.8&#xff09;&#xff0c…

LangChain教程 - 构建对话式检索增强生成(Conversational RAG)

系列文章索引 LangChain教程 - 系列文章 在许多问答应用中&#xff0c;我们希望允许用户进行多轮对话&#xff0c;这需要应用具备某种形式的“记忆”&#xff0c;以便能够在当前回答中整合过去的问题和答案。本教程将介绍如何通过两种方法实现这一目标&#xff1a; Chains&am…

详解CORDIC算法以及Verilog实现并且调用Xilinx CORDIC IP核进行验证

系列文章目录 文章目录 系列文章目录一、什么是CORDIC算法&#xff1f;二、CORDIC算法原理推导三、CORDIC模式3.1 旋转模式3.2 向量模式 四、Verilog实现CORDIC4.1 判断象限4.2 定义角度表4.3 迭代公式 五、仿真验证5.1 matlab打印各角度的正余弦值5.2 Verilog仿真结果观察 六、…

金仓数据库 KingbaseES参考手册 (8. 函数(九))

8.299. SCALE 用法&#xff1a; scale(numeric)功能&#xff1a; SCALE返回参数的精度&#xff08;小数点后的位数&#xff09;。 例子&#xff1a; SELECT scale(8.41);8.300. SCORE 用法&#xff1a; SCORE(lable number)输入参数&#xff1a; lable&#xff1a;表示第几个co…

【AI大模型】ChatGPT模型原理介绍(下)

目录 &#x1f354; GPT-3介绍 1.1 GPT-3模型架构 1.2 GPT-3训练核心思想 1.3 GPT-3数据集 1.4 GPT-3模型的特点 1.5 GPT-3模型总结 &#x1f354; ChatGPT介绍 2.1 ChatGPT原理 2.2 什么是强化学习 2.3 ChatGPT强化学习步骤 2.4 监督调优模型 2.5 训练奖励模型 2.…

autosar DTC设置不了排查

环境 $ cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.1 LTS" NAME"Ubuntu" VERSION_ID"22.04" VERSION"22.04.1 LTS (Jammy Jellyfish)" VERSION_CODENAMEjammy IDubuntu ID_LIKEdebian HOME_URL"https://www.ubuntu.com/"…

Python可迭代对象(2)

目录 3。字典 字典的构造 字典的添加和修改 字典推导式的使用 以上全部代码编译结果展示 字典复习 4。集合(set) 集合的创建 集合的运算 集合的添加和删除元素 以上全部代码的编译结果 序列解包&#xff08;Sequence unpacking&#xff09; 3。字典 字典的构造 #字…

js基础语法详解

JavaScript 的基本语法包括变量、数据类型、运算符和控制流语句等。下面将逐一介绍这些内容。 变量&#xff1a; 在 JavaScript 中&#xff0c;可以使用 var、let 或 const 关键字声明变量。例如&#xff1a; var x 5; let y 10; const z 15;其中&#xff0c;var 是旧版的…