如何解决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 举报,一经查实,本站将立刻删除。