您的位置:首页 > 编程语言 > Qt开发

信号槽链接触发写销毁

2015-05-27 21:24 274 查看
1、  信号有关数据结构

QObjectPrivate类里,
QObjectConnectionListVector*connectionLists;
数组链表,存储此对象所有信号/槽(信号)链接,每个值对应一个信号链表,信号槽链接时就在相应信号链表后面增加,此信号触发时按信号链表从头到尾顺序触发。
Connection *senders;链表,存储连接此对象所有对象,用于此对象销毁后删除曾经链接过此对象信号槽链接。
下图:1,2,3…对应相应信号链表
 

2、  链接的创建和自动销毁

(1)QObject::connect();将一个新的接口增加到相应信号链表末尾。

(2)清除对象已经被销毁的链接

(3)被链接的对象记录下链接对象,以备被链接对象销毁时通知链接对象清除链接

 

3、  信号槽的响应

(1)信号发射时,遍历相应信号链表顺序响应槽。

 

 

一些注意问题

(1)Connect()是有返回值判断链接是否成功的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Qt 信号槽