Qt-connect信号与槽绑定的第五个参数

 Qt Widgets
时间:

Qt-connect信号与槽绑定的第五个参数

  • 自动连接(AutoConnection)

(默认)如果槽位于发出信号的线程中,则使用Qt::DirectConnection。否则,使用Qt::QueuedConnection。连接类型是在信号发出时确定的。

  • 直接连接(DirectConnection)

当信号发出时,立即调用槽。槽在信号线程中执行。

  • 队列连接(QueuedConnection)

当控制权回到接受者所在线程的事件循环时,槽函数被调用。槽函数在接受者所在线程执行,即槽函数与信号接受者在同一线程。

  • 锁定队列连接(BlockingQueuedConnection)

槽函数的调用时机与Qt::QueuedConnection一致,不过发送完信号后发送者所在线程会阻塞,直到槽函数运行完。接收者和发送者绝对不能在一个线程,否则程序会死锁。在多线程间需要同步的场合可能需要这个。

  • 单一连接(UniqueConnection)

这是一个可以使用按位或与上述任何一种连接类型组合的标志。当Qt::UniqueConnection被设置时,如果连接已经存在,QObject::connect()就会失败(也就是说,如果相同的信号已经连接到相同的槽上,对应于相同的对对象)。在Qt 4.6中引入了这个标志。


0 评论