[python]Générer et invoquer un évènement
Résolu/Fermé
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
-
26 oct. 2006 à 09:47
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 - 26 oct. 2006 à 10:40
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 - 26 oct. 2006 à 10:40
A voir également:
- [python]Générer et invoquer un évènement
- Comment générer un qr code - Guide
- Generer mot de passe - Télécharger - Sécurité
- Citizen code python - Accueil - Outils
- Ce programme est écrit en python ✓ - Forum Python
4 réponses
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
26 oct. 2006 à 10:36
26 oct. 2006 à 10:36
mmm... j'imagine que ton interface graphique peu passer une de ses méthodes en paramètre à un objet (pour s'enregistrer).
(Vu qu'on peut passer des référence à des méthodes/fonctions en paramètre).
Un truc du genre (syntaxe non vérifiée):
et ton interface graphique pourrait alors s'enregistrer:
J'imagine qu'on pourrait aussi utiliser des décorateurs pour alléger un peu la syntaxe.
(Vu qu'on peut passer des référence à des méthodes/fonctions en paramètre).
Un truc du genre (syntaxe non vérifiée):
class maclasse: def __init__(self): self.funcs = [] # List des callback enregistrées def register(self,func): self.funcs.append(func) # On garde une référence de la fonction à appeller def __setattr__(self,key,value): # A chaque modification d'un attribut... self.__dict__[key] = value for func in self.funcs: func(key,value) # ...on prévient ceux qui sont enregistrés qu'on a été modifié (on passe la valeur modifiée)
et ton interface graphique pourrait alors s'enregistrer:
def __init__(self): self.o = maclasse() self.o.register(update) # On passe la méthode en paramètre def update(self,key,value): ... # Mise à jour de mes widgets
J'imagine qu'on pourrait aussi utiliser des décorateurs pour alléger un peu la syntaxe.
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
26 oct. 2006 à 10:08
26 oct. 2006 à 10:08
Quand tu dis "change", tu veux dire "quand un des attributs est changé" ?
Tu peux implémenter __setattr__, ce qui ce permettra de détecter la moindre modification d'un attribut de ta classe.
Si c'est juste pour surveiller un attribut particulier, il y a une autre méthode.
Tu peux implémenter __setattr__, ce qui ce permettra de détecter la moindre modification d'un attribut de ta classe.
Si c'est juste pour surveiller un attribut particulier, il y a une autre méthode.
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
26 oct. 2006 à 10:16
26 oct. 2006 à 10:16
Non, je veux dire "J'ai ajouté un élément dans une collection qui est montrée sur l'interface utilisateur" en fait...
Un genre de ObjectAddedEvent
A moins que les List ou les Dico implémentent ça...
Un genre de ObjectAddedEvent
A moins que les List ou les Dico implémentent ça...
teebo
Messages postés
33491
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 793
26 oct. 2006 à 10:40
26 oct. 2006 à 10:40
Voui effectivement, j'avais pas penser la méthode en tant qu'objet, mais vu comme ça, pas besoin de méchanisme spécifique pour les events :)
Merci :)
Décidément, je sens que je vais apprendre plein de truc avec pyBulle ;)
Merci :)
Décidément, je sens que je vais apprendre plein de truc avec pyBulle ;)