如果我有一个A类,其功能之一是:
void A::func()
{
emit first_signal();
emit second_signal();
}
假设B类有2个插槽,一个连接到first_signal
,另一个连接到second_signal
,是保证连接到{{ 1}}将始终在<{strong> first_signal
广告位之前进行处理?
答案 0 :(得分:15)
如果你在信号和插槽之间使用直接连接类型(Qt :: DirectConnection),那么答案是肯定的。
来自Qt帮助系统:
发出信号时,插槽 连接到它通常执行 马上就像正常一样 函数调用。当这种情况发生时, 信号和插槽机制完全是 独立于任何GUI事件循环。 执行下面的代码 所有发生声明都会发生 插槽已经退回。情况如此 使用排队时略有不同 连接;在这种情况下,代码 跟随emit关键字将 立即继续,并插槽 将在稍后执行。
您可以在enum Qt::ConnectionType方法中将默认连接类型更改为QObject::connect中的任何一种。