Arguments des fonctions commandes dans les widgets

Le
ast
Bonjour

Sur ce site à l'exemple n°5
http://fsincere.free.fr/isn/python/cours_python_tkinter.php

On a le code suivant décrivant un "scale" de l'interface tkinter

echelle = Scale(Mafenetre, from_=-100, to0, resolution,
orient=HORIZONTAL, length00, width , label="Offset",
tickinterval , variable=Valeur, command=maj)

Quand on déplace le curseur on appelle donc la fonction maj
qui est:

def maj(nouvelleValeur):
print(nouvelleValeur)

Cette fonction maj a un argument nouvelleValeur qui n'est
semble t'il pas passé lorsque maj est appelé par le scale

Pourtant le programme fonctionne correctement
Comment ça se passe ?

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas
Le #26317156
Le 24/10/2014 08:06, ast a écrit :
Bonjour

Sur ce site à l'exemple n°5
http://fsincere.free.fr/isn/python/cours_python_tkinter.php

On a le code suivant décrivant un "scale" de l'interface tkinter

echelle = Scale(Mafenetre, from_=-100, to0, resolution,
orient=HORIZONTAL, length00, width , label="Offset",
tickinterval , variable=Valeur, command=maj)

Quand on déplace le curseur on appelle donc la fonction maj
qui est:

def maj(nouvelleValeur):
print(nouvelleValeur)

Cette fonction maj a un argument nouvelleValeur qui n'est
semble t'il pas passé lorsque maj est appelé par le scale

Pourtant le programme fonctionne correctement
Comment ça se passe ?



maj() est ce que l'on appelle une fonction de callback. Avec
"command=maj", on indique au widget quelle fonction il doit appeler
lorsque le curseur est déplacé. Le widget Scale appelle automatiquement
la fonction maj() avec la bonne valeur.

merci

ast
Le #26317155
"Nicolas" news:544a01d6$0$2062$




maj() est ce que l'on appelle une fonction de callback. Avec "command=maj", on indique au widget
quelle fonction il doit appeler lorsque le curseur est déplacé. Le widget Scale appelle
automatiquement la fonction maj() avec la bonne valeur.




merci pour cette réponse

Si je comprends bien, l'interpréteur Python se rend compte que
la fonction maj() nécessite un argument et comme aucun n'est
spécifié il passe comme argument par défaut Valeur qui est la
variable qui contient la position du curseur du scale. C'est bien
ça ?
Nicolas
Le #26317269
Le 24/10/2014 09:49, ast a écrit :

"Nicolas" news:544a01d6$0$2062$




maj() est ce que l'on appelle une fonction de callback. Avec
"command=maj", on indique au widget quelle fonction il doit appeler
lorsque le curseur est déplacé. Le widget Scale appelle
automatiquement la fonction maj() avec la bonne valeur.




merci pour cette réponse

Si je comprends bien, l'interpréteur Python se rend compte que
la fonction maj() nécessite un argument et comme aucun n'est
spécifié il passe comme argument par défaut Valeur qui est la
variable qui contient la position du curseur du scale. C'est bien
ça ?


Pas du tout.
C'est le widget Scale qui s'occupe de tout.
A la création du widget, le paramètre "command" est utilisé pour
indiquer au widget quelle fonction il doit utiliser : command= maj.
Lorsque le curseur du widget est déplacé, le widget appelle la fonction
"maj" avec en paramètre la position du curseur.
C'est une technique très utilisée dans les interfaces graphiques,
indépendamment du langage.
Publicité
Poster une réponse
Anonyme