信号与槽已经使用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);
相关推荐
小陈工25 分钟前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
H Journey30 分钟前
C++之 CMake、CMakeLists.txt、Makefile
开发语言·c++·makefile·cmake
lly2024065 小时前
C 标准库 - `<stdio.h>`
开发语言
沫璃染墨5 小时前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++
jwn9995 小时前
Laravel6.x核心特性全解析
开发语言·php·laravel
迷藏4945 小时前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
功德+n5 小时前
Linux下安装与配置Docker完整详细步骤
linux·运维·服务器·开发语言·docker·centos
明日清晨5 小时前
python扫码登录dy
开发语言·python
我是唐青枫6 小时前
C#.NET gRPC 深入解析:Proto 定义、流式调用与服务间通信取舍
开发语言·c#·.net
JJay.6 小时前
Kotlin 高阶函数学习指南
android·开发语言·kotlin