首页 > 代码库 > 第81课 信号与槽的连接方式
第81课 信号与槽的连接方式
1. QObject::connect函数
bool connect(const QObject* sender, //发送者 const char* signal, //信号 const QObject* receiver, //接收者 const char* method, //槽函数 Qt::ConnectionType type = Qt::AutoConnection);//连接方式
2. 深入信号与槽的连接方式
(1)Qt::DirectConnection(直接连接,立即调用):直接在发送信号的线程中调用槽函数,等价于槽函数的实时调用!
(2)Qt::QueuedConnection(队列连接,异步调用):信号发送至目标线程的事件队列,由目标线程处理;当前线程继续向下执行!
(3)Qt::BlockingQueuedConnection(阻塞式队列连接,同步调用):信号发送至目标线程的事件队列,由目标线程处理;当前线程等待槽函数返回,之后继续向下执行。(注意:目标线程和当前线程必须不同!)
(4)Qt::AutoConnection(默认连接):这是connect函数第5个参数的默认值,也是工程中最常用的连接方式。
(5)Qt::UniqueConnection(单一连接)
①默认下,可以多次调用connect函数将同一个信号连接到同一个槽函数,多次的连接意味着同一个槽函数会被多次调用。
②而UniqueConnection会使上述的多次连接中只保留一个,即同一个信号与同一个槽函数之间只有一个连接。
③其功能与AutoConnection相同,自动确定连接类型。
【编程实验】信号与槽的连接方式
3. 小结
(1)信号与槽的连接存在多种方式
(2)立即调用方式等价于槽函数的实时调用
(3)默认方式自动确定连接类型
(4)同步方式中的目标线程与当前线程必须不同
(5)单一连接方式确保同一个信号与同一个槽之间只有一个连接。
第81课 信号与槽的连接方式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。