geändert habe ich eine Variable tPyQt Ereignis, wenn ein variabler Wert
t = 0
Ich möchte ein Ereignis starten, wann immer t-Wert geändert wird. Wie? Es gibt keine valuechanged.connect-Eigenschaften oder irgendetwas für Variablen ...
geändert habe ich eine Variable tPyQt Ereignis, wenn ein variabler Wert
t = 0
Ich möchte ein Ereignis starten, wann immer t-Wert geändert wird. Wie? Es gibt keine valuechanged.connect-Eigenschaften oder irgendetwas für Variablen ...
Für eine globale Variable ist dies nicht allein durch Zuweisung möglich. Aber für ein Attribut ist es ziemlich einfach: Verwenden Sie einfach eine property (oder vielleicht __getattr__/__setattr__
). Dadurch wird effektiv Zuordnung in einen Funktionsaufruf, so dass Sie, was zusätzliches Verhalten Sie gerne hinzufügen:
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)
Jetzt können Sie foo = Foo(); foo.t = 5
tun und das Signal wird ausgesendet, nachdem der Wert geändert hat.