更改变量值时的 PyQt 事件
PyQt Event when a variable value is changed
我有一个变量t
t = 0
我想在 t 值改变时启动一个事件。
如何 ?没有 valuechanged.connect 属性或任何变量...
对于全局变量,仅使用赋值是不可能的。但对于属性来说,它非常简单:只需使用 property (or maybe __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
,值改变后会发出信号。
我有一个变量t
t = 0
我想在 t 值改变时启动一个事件。 如何 ?没有 valuechanged.connect 属性或任何变量...
对于全局变量,仅使用赋值是不可能的。但对于属性来说,它非常简单:只需使用 property (or maybe __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
,值改变后会发出信号。