微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Qt.QueuedConnection从不发送消息

如何解决Qt.QueuedConnection从不发送消息

| 为什么该程序不打印任何内容
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class A(QObject):
    def __init__(self):
        super(A,self).__init__()

    sig = pyqtSignal()

    @pyqtSlot()
    def slot(self):
        print(\"received\")

a = A()
a.sig.connect(a.slot,Qt.QueuedConnection)

a.sig.emit()
a.sig.emit()
a.sig.emit()
如果删除Qt.QueuedConnection,它将按预期工作。我正在尝试查看Qt.QueuedConnection是否将自动删除重复的事件。     

解决方法

        我不是使用Python(或PyQt)的专家,但是只有在应用程序再次进入事件循环后,才会传递排队的连接,而普通连接对应于直接函数调用。因此,我想在您的情况下,您必须等到应用程序进入事件循环才能调用该插槽(尽管我在您的代码中看不到任何应用程序对象)。 编辑:而且我怀疑它会删除重复的呼叫,因为Qt不知道它是重复的呼叫还是应该另外进行的概念上不同的呼叫。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。