Signal和Slot是同步的还是异步的

Posted xzlq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Signal和Slot是同步的还是异步的相关的知识,希望对你有一定的参考价值。

signal和slot是异步调用还是同步调用,取决于对connect的设定。其实connect还有一个参数(Qt::ConnectionType),是它决定了是同步还是异步。以下是ConnectionType的定义

技术图片

只不过,平常它有一个默认值Qt::AutoConnection,我们忽略了它。这时有道友问道,为何在AutoConnection模式下,有时是同步,有时是异步,莫非Auto就是人品代名词。

非也,其实Auto是这样规定的,

当sender和receiver在同一线程时,就是同步模式,而在不同线程时,则是异步模式。

在Auto模式下,如果sender的触发时所处的线程和receiver不同,也会是异步调用

以上是关于Signal和Slot是同步的还是异步的的主要内容,如果未能解决你的问题,请参考以下文章

golang-GUI开发qt之signal和slot

深入了解Qt之元signal和slot

QTcpSocket同步读取

关于QT中的signal 和 slot 中带参数问题

PyQt5系列教程信号和槽

PyQt 将 SIGNAL 连接到多个 SLOT