在类__init__之外定义信号不起作用?

时间:2013-04-01 22:02:47

标签: python pyqt signals-slots

我正在尝试理解信号和插槽......

阅读几件事

http://www.harshj.com/2010/05/06/pyqt-faq-custom-signals-jpeg-mouse-hovers-and-more/#custom

http://zetcode.com/tutorials/pyqt4/eventsandsignals/

以下是问题:

class bla(object):
    blaSignal = QtCore.pyqtSignal()

有效但

class bla(object):

def __init__(self):
    self.blaSignal = QtCore.pyqtSignal()

不起作用,它说明信号没有受到约束...... 我在这里不明白什么?为什么一个人工作?

由于

1 个答案:

答案 0 :(得分:2)

这里的问题是你希望有一个由所有bla个对象共享的信号。

如果每个bla的信号不同,则在不知道拥有特定信号的特定bla实例的情况下,任何人都无法连接任何信号。这在程序中会很糟糕,但想象一下像QtDesigner或基于QMetaObject的内省会如何处理它。即使它创建了一个bla实例,也不会是您的代码在运行时创建的bla实例。

这在文档中的Defining New Signals with pyqtSignal()中有所解释。