Max*_*ien 6 python variables events signals-slots pyqt4
我有一个变量 t
t = 0
我想在 t 值改变时开始一个事件。如何 ?没有 valuechanged.connect 属性或任何变量...
对于全局变量,单独使用赋值是不可能的。但是对于一个属性来说,它非常简单:只需使用一个属性(或者可能__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)
Run Code Online (Sandbox Code Playgroud)
现在您可以这样做,foo = Foo(); foo.t = 5并且在值更改后将发出信号。
| 归档时间: |
|
| 查看次数: |
4665 次 |
| 最近记录: |