1
爲什麼此程序不打印任何內容?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是否會自動刪除重複的事件。
啊,你明白了。 – 2011-06-13 21:30:11
是的,你是對的。 Qt沒有消耗重複調用的連接類型太糟糕了。 – 2011-06-13 21:40:54
@NeilG:這將如何工作?確定一個調用是重複還是邏輯的一部分的標準是什麼?例如。如果一個信號在循環中運行,最終會增加一些值作爲整個程序邏輯的一部分。還是你指的是兩個或更多的發射聲明彼此跟隨的情況,就像在你的例子中一樣? – 2014-01-22 16:19:37