Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Arguments des fonctions commandes dans les widgets

3 réponses
Avatar
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, to=100, resolution=10, \
orient=HORIZONTAL, length=300, width=20, label="Offset", \
tickinterval=20, 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

3 réponses

Avatar
Nicolas
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

Avatar
ast
"Nicolas" a écrit dans le message de
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 ?
Avatar
Nicolas
Le 24/10/2014 09:49, ast a écrit :

"Nicolas" a écrit dans le message de
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.