两个不同的插槽用于相同的信号

时间:2011-11-25 01:50:47

标签: multithreading qt signals-slots

当m_serverClientControl在其线程上发出finishedRunning()时,如何判断在主线程中哪个槽首先/最后执行?在这样的情况下,插槽如何排队?我很困惑Qt如何在线程事件队列中放置插槽事件。我已经阅读了文档,但我仍然有点困惑。

connect( m_serverClientControl, SIGNAL( finishedRunning() ), m_serverClientControl, SLOT( deleteLater() ) );
connect( m_serverClientControl, SIGNAL( finishedRunning() ), this, SLOT( finishedRunningEmited() ) )

1 个答案:

答案 0 :(得分:1)

来自Qt 4.7文档:

  

如果有多个插槽连接到一个信号,则插槽将是   按照他们连接的顺序依次执行,   当信号发出时。

http://doc.qt.io/archives/qt-4.7/signalsandslots.html#signals

因此,在您的情况下finishedRunningEmited()应在deleteLater()之后调用。