变量值更改时的 PyQt 事件

2024-05-14

我有一个变量 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(使用前将#替换为@)

变量值更改时的 PyQt 事件 的相关文章

随机推荐