def __call__(self)
self.function(self.argument
def show(arg)
#print "Je suis le bouton %s" %ar
print "Je suis le bouton ", arg #marche aussi . Quelle différence ???????
recherchepoint(arg
que j'appelle de la façon suivante dans le corps du programme
for x in range(len(petitsmots)):
b=Button(cadre3,text=x,command=Callback(show,x)
ceci fonctionn
maintenant, je veux encapsuler moin programme dans une autre class, mais lorsque j'appelle la fonction, ça ne marche plus ???
Faut il changer "command=Callback(show,x)
est il possible d'appeler cette class depuis une fenetre créée en wxpython
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jean-michel bain-cornu
Bonsoir, oliv wrote:
Dans une appli pour créer des bouton ayant chacun sa fonction, j'utilise la class suivante :
class Callback:
def __init__(self,function,argument): self.function = function self.argument = argument
def __call__(self): self.function(self.argument) def show(arg): #print "Je suis le bouton %s" %arg print "Je suis le bouton ", arg #marche aussi . Quelle différence ???????? ligne commentée : il y a 1 <espace> entre les 2 derniers mots
ligne active : il y en a 2 (à cause de la virgule)
recherchepoint(arg) que j'appelle de la façon suivante dans le corps du programme :
for x in range(len(petitsmots)): b=Button(cadre3,text=x,commandÊllback(show,x))
ceci fonctionne maintenant, je veux encapsuler moin programme dans une autre class, mais lorsque j'appelle la fonction, ça ne marche plus ???? Faut il changer "commandÊllback(show,x)" ça serait pas + simple une bête fonction avec un test sur le texte de
l'objet déclencheur ?
est il possible d'appeler cette class depuis une fenetre créée en wxpython ? Peut-être en créant un objet d'abord (objÊllback(patati,patata)) puis
en qualifiant la fonction dans le bind (obj.__call__) ? J'avoue que je suis un peu perplexe et que ça me paraît un peu compliqué. Pourquoi par exemple ne pas créer une classe dérivée de wxButton que tu utiliseras dans ta boucle (b=monButton...etc...) ? A+ jm
Bonsoir,
oliv wrote:
Dans une appli pour créer des bouton ayant chacun sa fonction, j'utilise la class suivante :
class Callback:
def __init__(self,function,argument):
self.function = function
self.argument = argument
def __call__(self):
self.function(self.argument)
def show(arg):
#print "Je suis le bouton %s" %arg
print "Je suis le bouton ", arg #marche aussi . Quelle différence ????????
ligne commentée : il y a 1 <espace> entre les 2 derniers mots
ligne active : il y en a 2 (à cause de la virgule)
recherchepoint(arg)
que j'appelle de la façon suivante dans le corps du programme :
for x in range(len(petitsmots)):
b=Button(cadre3,text=x,commandÊllback(show,x))
ceci fonctionne
maintenant, je veux encapsuler moin programme dans une autre class, mais lorsque j'appelle la fonction, ça ne marche plus ????
Faut il changer "commandÊllback(show,x)"
ça serait pas + simple une bête fonction avec un test sur le texte de
l'objet déclencheur ?
est il possible d'appeler cette class depuis une fenetre créée en wxpython ?
Peut-être en créant un objet d'abord (objÊllback(patati,patata)) puis
en qualifiant la fonction dans le bind (obj.__call__) ?
J'avoue que je suis un peu perplexe et que ça me paraît un peu
compliqué. Pourquoi par exemple ne pas créer une classe dérivée de
wxButton que tu utiliseras dans ta boucle (b=monButton...etc...) ?
A+
jm
Dans une appli pour créer des bouton ayant chacun sa fonction, j'utilise la class suivante :
class Callback:
def __init__(self,function,argument): self.function = function self.argument = argument
def __call__(self): self.function(self.argument) def show(arg): #print "Je suis le bouton %s" %arg print "Je suis le bouton ", arg #marche aussi . Quelle différence ???????? ligne commentée : il y a 1 <espace> entre les 2 derniers mots
ligne active : il y en a 2 (à cause de la virgule)
recherchepoint(arg) que j'appelle de la façon suivante dans le corps du programme :
for x in range(len(petitsmots)): b=Button(cadre3,text=x,commandÊllback(show,x))
ceci fonctionne maintenant, je veux encapsuler moin programme dans une autre class, mais lorsque j'appelle la fonction, ça ne marche plus ???? Faut il changer "commandÊllback(show,x)" ça serait pas + simple une bête fonction avec un test sur le texte de
l'objet déclencheur ?
est il possible d'appeler cette class depuis une fenetre créée en wxpython ? Peut-être en créant un objet d'abord (objÊllback(patati,patata)) puis
en qualifiant la fonction dans le bind (obj.__call__) ? J'avoue que je suis un peu perplexe et que ça me paraît un peu compliqué. Pourquoi par exemple ne pas créer une classe dérivée de wxButton que tu utiliseras dans ta boucle (b=monButton...etc...) ? A+ jm