
Envoyé par
Vincent-vr
Pourquoi ça marche pour un clic bouton et pas pour un "callback" ? Est-ce à dire qu'il faut une procédure avec un paramètre "event" pour le callback, dans laquelle j'appelle la procédure de renommage "classique" ?
Il y a différents types d'évènements et les callbacks associés vont recevoir différents arguments... Le callback passé comme command à un Button n'a pas le même prototype que celui associé à .bind.
C'est comme çà et ça fonctionne "as documented".
Je reconnais que ce n'est pas "intuitif"... c'est pour çà qu'on a intérêt à se former un peu avant.

Envoyé par
Vincent-vr
113 lignes, trop long ??? C'est une blague ?
La question se résume à "pourquoi le callback associé à <<ListboxSelect>> via un .bind se récupère un argument"... ou "comment le faire disparaître lorsqu'on n'en a pas besoin?" peut s'illustrer par un petit exemple de quelques lignes et motiver la création d'une nouvelle discussion.
Cela permettrait a plus de moins débutants de vous apporter des réponses plutôt que d'attendre que le vieux grincheux qui sait lire le code pourri écrit par d'autres (c'est une de mes spécialités) comprenne ce qu'il se passe sans se prendre les pieds dans le tapis (qui est le critère pour savoir si un code est lisible/bien structuré ou pas).

Envoyé par
Hominidé
Pour que ta fonction puisse être aussi appellé depuis l'événement, il te faut transmettre l'argument evt à ta fonction.
On peut écrire def selection_eleve(*event)
Mais actuellement, la fonction n'a que faire de la présence ou pas d'event.
Dans ce cas, on peut manger l'argument:
liste.bind('<<ListboxSelect>>',lambda e: selection_eleve())
- W
Partager