1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| class ButtonModel(object):
def __init__(self, text):
self.__text = text
def getText(self):
return self.__text
def setText(self, new):
self.__text = new
self._fireChangeEvent()
text = property(getText, setText)
def _fireChangeEvent():
# Methode qui envoie un event à chaque Observer enregistré
# par leur methode stateChanged
class Button:
def __init__(self, model):
self.__model = model
self.__update()
def stateChanged(self, e):
self.__update()
def __update(self):
# Met a jour le label du bouton selon le modèle
self.set_label(self.__model.text)
# Il me faudrait ici une sorte de proxy de la property model.text
# de manière à ce que le changement du label d'un bouton
# soit répercuté sur tous les autres. |
Partager