关闭

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

298人阅读 评论(0) 收藏 举报
分类:

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

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

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

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

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

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8777次
    • 积分:222
    • 等级:
    • 排名:千里之外
    • 原创:13篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类