我有一个变量 t
t = 0
我想在 t 值发生变化时启动一个事件。
如何 ?没有 valuechanged.connect 属性或任何变量......
对于全局变量,单独使用赋值是不可能的。但对于属性来说非常简单:只需使用property https://docs.python.org/3/library/functions.html#property(或者可能__getattr__/__setattr__ https://docs.python.org/3/reference/datamodel.html#object.__getattr__)。这有效地将赋值转换为函数调用,允许您添加您喜欢的任何附加行为:
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
值改变后会发出信号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)