信号与槽已经使用connect语句连接,并且参数也匹配,但是发送信号以后不执行槽函数?

笔者遇到的问题如标题,经排查,信号和槽函数的定义没有问题,输入参数的类型也是一致的,也使用了connect函数连接,但是发送信号以后没有执行槽函数,原因出在connect语句,错误示范:

cpp 复制代码
connect(this, SIGNAL(sig_BackinfoTranspond), 
        this, SLOT(slot_backinfoTranspond));

错误原因:在使用 SIGNAL() 和 SLOT() 宏时,必须写出完整的参数类型,否则 Qt 无法匹配!

正确的语句:

cpp 复制代码
connect(this, SIGNAL(sig_BackinfoTranspond(quint8,QTcpSocket*)),
        this, SLOT(slot_backinfoTranspond(quint8,QTcpSocket*)));

有时候第二种语法也会导致无法执行槽函数,可以改为下面的Qt5的新式语法:

cpp 复制代码
connect(this, &MyClass::updateTemperatureUI,this, &MyClass::updateTempDisplay);
相关推荐
十年一梦实验室2 小时前
【AI解析】一个用 C#编写的类,用于通过以太网非过程命令与 Keyence CV-X 系列视觉系统进行通信
开发语言·c#
啊森要自信2 小时前
【 GUI自动化测试】GUI自动化测试(一) 环境安装与测试
开发语言·python·ui·单元测试·pytest
Never_Satisfied2 小时前
在JavaScript / HTML中,让<audio>元素中的多个<source>标签连续播放
开发语言·javascript·html
love530love2 小时前
EPGF架构:Python开发的长效稳定之道
开发语言·ide·人工智能·windows·python·架构·pycharm
机器视觉知识推荐、就业指导2 小时前
QML学习:1.快速了解QML
qt·学习·qml
WangMing_X3 小时前
C#上位机软件:1.7 熟悉VS并开启你的第一个C#程序
开发语言·c#
爱和冰阔落3 小时前
【C++STL详解】带头双向循环结构 + 双向迭代器,核心接口 + 排序效率 + 避坑指南
开发语言·c++·经验分享
星星点点洲3 小时前
【Golang】数据设计模式
开发语言·设计模式·golang
城管不管3 小时前
SpringBoot与反射
java·开发语言·前端