信号槽无法触发的原因,无非就就下面几种:
1.忘记连接信号槽,这种错误十分低级,排查难度一颗星;
2.信号槽中使用了自定义参数(此处应该注意自定义参数是包括数组的,本人在此处吃过一次亏,浪费了半天时间排查),但是没有注册过,应该在开头使用qRegisterMetaType<Mytype>("Mytype");
注册,排查难度两颗星;
3.实际槽运行的线程资源被占用,或者是槽所在的对象正在其他的槽响应过程中,这个问题需要带调试排查,排查难度三颗星。
第3点在线程架构设计的时候就需要考虑到这个问题,尽量避免,可以参考下QT中线程新建方式的区别以及实际使用建议
QT跨线程信号槽无响应的原因解析
最新推荐文章于 2024-06-12 16:19:00 发布