更改变量值时的 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,值改变后会发出信号。