PyQt5支持不继承自QObject的类中的信号

时间:2017-04-26 12:55:59

标签: python qt pyqt5 qobject

在PyQt4和PyQt5之间的差异"部分(http://pyqt.sourceforge.net/Docs/PyQt5/pyqt4_differences.html),我可以阅读以下内容:

  

与PyQt4不同,PyQt5支持定义不属于QObject的类中的属性,信号和槽(即在mixins中)。

然而,在"支持信号和插槽"部分(http://pyqt.sourceforge.net/Docs/PyQt5/signals_slots.html),我可以读到:

  

新信号只应在QObject的子类中定义。它们必须是类定义的一部分,并且在定义类之后不能作为类属性动态添加。

我是误解了某些内容还是两句话相互矛盾?

1 个答案:

答案 0 :(得分:1)

注意mixins中的 部分。这意味着您可以执行以下操作:

from PyQt5.QtCore import pyqtSignal, QObject

class SignalMixin:
    sig = pyqtSignal()

class Obj(SignalMixin, QObject):
    pass

o = Obj()
o.sig.connect(lambda: print('foo'))
o.sig.emit()