Qt编译报错:“Signal and slot arguments are not compatible.”当信号函数和槽函数带参数时,建议使用旧语法写信号槽连接。


当信号函数和槽函数有参数时,使用旧语法写信号/槽连接比新语法更容易发现错误。

QT5新语法写信号/槽连接,比如:

connect(Device::getInstance(), &Device::sig_sendData, this, &Tool::slot_receiveData);

旧语法写信号/槽连接,比如:

connect(Device::getInstance(), SIGNAL(sig_sendData(QString,int)), this, SLOT(slot_receiveData(QString, int));

 当修改了信号/槽函数其中一个函数的参数类型,而未修改另一个函数的参数类型时,例如:

信号函数sig_sendData(QString, int)变成了sig_sendData(QString, QByteArray),槽函数的参数类型未做相应的修改。

新语法编译时会报错“Signal and slot arguments are not compatible.”,但是不会定位到错误发生的具体的信号/槽连接处,给调试和寻找错误带来了很大的不方便。

旧语法则会直接在信号/槽连接那里就报错,便于发现问题。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM