关于信号槽连接地方的一点心得,一个问题困扰了一下午才解决,纪念一下。

来源:互联网 发布:阿里巴巴数据分析 编辑:程序博客网 时间:2024/04/30 20:56

今天下午写程序编译时候遇见个小bug,困扰了一下午晚上才解决,写在这里与大家分享下。

错误表现:楼主原意一个单独的信号对应一个单独的槽。但是当信号发出一次后槽响应两次,而且在第二次响应后出线bug。

找到原因:楼主建立信号槽的地方是在一个循环中,循环生成了不同的对象,虽然信号对象还在,但是槽所在对象已经产生一次变化。所以信号的接收对象有两个,他们在接收信号后,都去调用槽函数,第一个对象调用槽函数成功了,第二个对象调用槽函数的  时候由于对象本身的缺陷,导致槽函数执行时候出线bug,导致程序退出。

改进办法:在槽函数中多加了对对象本身条件的判定,防止了bug的发生。

由此延伸:信号与槽的链接虽然只是出线一次,发出信号的对象和接收信号调用槽的对象可能是多个。比如你说的话之后A会听到,也许  B也听到了,虽然你不愿意如此。

1 0
原创粉丝点击