Qt的:难道事件被按顺序处理?

如果我有一个A级,它的功能,其中一个作用:

void A::func() { emit first_signal(); emit second_signal(); }

假设一个类B具有2个插槽,一个连接到first_signal向其他second_signal它是保证被连接到槽first_signal将始终在之前处理 second_signal槽?

--------------解决方案-------------

如果使用信号和槽之间的默认连接类型(QT :: DirectConnection),那么答案是肯定的。

从Qt的帮助系统:

当信号被发射,连接到它的插槽通常是立即执行,就像一个普通的函数调用。当发生这种情况时,信号和槽机制完全独立于任何GUI事件循环, 代码继发出语句的执行将发生一次所有插槽都返回的情况是使用队列连接时略有不同 在这样的情况下,继发射关键字代码将立即继续,并且槽将在后面执行。

您可以更改默认的连接类型的任何枚举的Qt :: ConnectionType中的QObject :: connect方法。

分类:QT 时间:2015-03-14 人气:0
本文关键词: QT,信号槽
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.914 (s). 10 q(s)