• 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.”,但是不会定位到错误发生的具体的信号/槽连接处,给调试和寻找错误带来了很大的不方便。

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

  • 相关阅读:
    【MyLocations】标记位置App开发体会
    iOS开发-Core Location和Map Kit
    iOS开发-轻点、触摸和手势
    iOS开发-GCD和后台处理
    iOS开发-block使用与多线程
    iOS开发-数据持久化
    iOS开发-为程序添加应用设置
    对iOS中MVC的理解
    docker
    linux shell
  • 原文地址:https://www.cnblogs.com/grebamboo/p/13958631.html
Copyright © 2020-2023  润新知