信号与槽已经使用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);
相关推荐
ZEERO~10 分钟前
@dataclass的作用
开发语言·windows·python
南行*18 分钟前
C语言Linux环境编程
linux·c语言·开发语言·网络安全
Morwit20 分钟前
Qt qml创建c++类的单例对象
开发语言·c++·qt
古城小栈22 分钟前
Rust 已经自举,却仍需GNU与MSVC工具链的缘由
开发语言·rust
YxVoyager26 分钟前
Qt C++ :QRegularExpression 正则表达式使用详解
c++·qt·正则表达式
jarreyer27 分钟前
数据项目分析标准化流程
开发语言·python·机器学习
你怎么知道我是队长30 分钟前
C语言---printf函数使用详细说明
c语言·开发语言
qq_4017004132 分钟前
QStackedLayout 实现遮罩层
qt
liulilittle32 分钟前
俄罗斯访问欧洲国际线路优化
开发语言·网络·信息与通信·ip·通信·俄罗斯·莫斯科
陈小桔34 分钟前
logging模块-python
开发语言·python