其他分享
首页 > 其他分享> > 变量值更改时的PyQt事件

变量值更改时的PyQt事件

作者:互联网

我有一个变量t

t = 0

每当t值更改时,我都想开始一个事件.
怎么样 ?没有valuechanged.connect属性或任何变量…

解决方法:

对于全局变量,仅使用赋值是不可能的.但是对于属性来说,它非常简单:只需使用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,并且该值更改后将发出信号.

标签:variables,pyqt4,signals-slots,events,python
来源: https://codeday.me/bug/20191111/2022382.html