У меня есть переменная TPyQt событие, когда значение переменной изменяется
т = 0
Я хочу, чтобы начать событие, когда значение т изменяется. Как? Нет свойств valuechanged.connect или ничего для переменных ...
У меня есть переменная TPyQt событие, когда значение переменной изменяется
т = 0
Я хочу, чтобы начать событие, когда значение т изменяется. Как? Нет свойств 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
и сигнал будет после того, как значение изменилось.