在Qt中,许多插槽连接到同一个信号,它们在发出信号时是否按顺序调用?

Tia*_*ian 4 qt signals-slots

Qt文件中说:

如果多个插槽连接到一个信号,则在发出信号时,插槽将按照它们已连接的顺序依次执行.

但是在connect()函数中,将Qt::ConnectionType类型设置为Qt::QueuedConnection"当控制返回到接收者线程的事件循环时调用插槽.插槽在接收者的线程中执行." 并且Qt::DirectConnection表示"在发出信号时立即调用插槽." 插槽可能不按顺序执行.

他们有冲突吗?

Mah*_*ive 7

如果多个插槽具有a Qt::DirectConnection,则将按照它们连接的顺序调用它们.如果多个插槽具有a Qt::QueueConnection,则将按照它们连接的顺序调用它们.如果混合和匹配,则所有Qt::DirectionConnection插槽将按顺序调用,然后当控制返回到事件循环时,所有Qt::QueuedConnection插槽将按顺序调用.