2017-01-26 4 views

ответ

2

Для глобальной переменной это невозможно использовать только при назначении. Но для атрибута это довольно просто: просто используйте 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 и сигнал будет после того, как значение изменилось.

Смежные вопросы