首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Qt:事件是否按顺序处理?

Qt:事件是否按顺序处理?
EN

Stack Overflow用户
提问于 2009-11-14 10:24:00
回答 1查看 6.3K关注 0票数 21

如果我有一个A类,它的一个函数可以:

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

假设B类有两个插槽,一个连接到first_signal,另一个连接到second_signal,是否可以保证连接到first_signal的插槽总是在处理second_signal插槽之前进行处理?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-14 18:46:16

如果您在信号和插槽之间使用直接连接类型(Qt::DirectConnection),那么答案是肯定的。

从Qt帮助系统:

当信号发出时,连接到它的插槽通常会立即执行,就像正常的函数调用一样。当发生这种情况时,信号和插槽机制完全独立于任何图形用户界面事件循环。emit语句后面的代码将在所有插槽返回后执行使用排队连接时,情况略有不同;在这种情况下,emit关键字后面的代码将立即继续,插槽将在稍后执行。

您可以在QObject::connect方法中将默认连接类型更改为任何enum Qt::ConnectionType

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1733022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档