信号与槽已经使用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);
相关推荐
micro_xx20 小时前
借助Matlab有限元工具pde进行静态结构有限元分析
开发语言·matlab
代码无bug抓狂人20 小时前
C语言之可分解的正整数(蓝桥杯省B)
c语言·开发语言·算法
Cher ~20 小时前
常见C++编译器套件
开发语言·c++
上海合宙LuatOS20 小时前
LuatOS ——Modbus RTU 通信模式
java·linux·服务器·开发语言·网络·嵌入式硬件·物联网
xyq202420 小时前
《jEasyUI 启用行内编辑》
开发语言
野生技术架构师20 小时前
Java 21虚拟线程 vs Kotlin协程:高并发编程模型的终极对决与选型思考
java·开发语言·kotlin
LYOBOYI12320 小时前
qml的布局策略
c++·qt
言之。20 小时前
Kotlin快速入门
android·开发语言·kotlin
Vivienne_ChenW21 小时前
DDD领域模型在项目中的实战
java·开发语言·后端·设计模式
牙牙要健康21 小时前
【open3d】Windows 下编译 Open3D C++ 源码完整教程
开发语言·c++·windows