• qt多线程编程,信号绑定成功,槽函数不响应问题排查处理及总结


    隔了一段没写qt4程序,突然要在qt4下开发个小工具,用到了多线程处理,使用了信号出发处理,哔哩啪啦的快速敲完了代码,信心满满的去编译,顺利通过,然后运行,正常跑起来了。然而在点击按钮触发信号后,发现居然没有响应?

      然后就根据就去排查问题,首先查看connect函数绑定的时候,是否成功,检查发现成功了,那为什么没有响应呢?根据以往经验,把常见的槽函数没有响应的都排查了一遍,

             1. 检查拥有信号槽的类,是否继承QObject,声明Q_OBJECT宏。

             2. 信号槽函数签名不匹配

             3. 参数类型没有注册

             4. 信号槽没有定义为pubic/private slots

             5. 信号函数未声明为 signals

             6. 事件被子控件过滤掉了

             7. 某事件循环被阻塞导致信号未能发出

             8. 信号发出者和接收者的作用域,是否在信号发送前释放了接收者

             9. connect的位置,是否在信号发送前进行了绑定

    很快速的一通排查下来,发现都没有问题,觉得肯定是有细节被自己忽略了,然后重新静下心来重新走读一下代码,突然发现将对象moveToThread后,然后一通信号绑定处理完,居然忘记启动线程了(为自己的粗心,想哭一下),然后在绑定信号后启动线程,重新编译,一切运行ok

  • 相关阅读:
    FPGA的汽车尾灯控制Verilog
    Transformer中位置嵌入的几种形式对比
    京东按关键字搜索商品 API
    使用jQuery移除元素的readonly属性
    树状数组及其拓展
    Windows11大变天!桌面或被Copilot接管!
    PostgreSQL 17即将发布,新功能Top 3
    设计模式七大原则
    程序化交易的策略类型可以分为哪几种?
    ShopXO商城系统文件上传0Day代审历程
  • 原文地址:https://blog.csdn.net/skyloveka/article/details/133853533