我有一个变量t
t = 0
我想在t值改变时启动一个事件。 怎么样 ?没有valuechanged.connect属性或变量的任何内容......
答案 0 :(得分:3)
对于全局变量,单独使用赋值是不可能的。但对于属性来说,这很简单:只需使用property(或者__getattr__/__setattr__
)。这有效地将赋值转换为函数调用,允许您添加任何您喜欢的其他行为:
class Foo(QWidget):
valueChanged = pyqtSignal(object)
def __init__(self, parent=None):
super(Foo, self).__init__(parent)
self._t = 0
@property
def t(self):
return self._t
@t.setter
def t(self, value):
self._t = value
self.valueChanged.emit(value)
现在你可以foo = Foo(); foo.t = 5
,信号将在值发生变化后发出。