TKINTER : Argument d'une fonction qui ne change pas...
Résolu/Fermé
Aidez_moi
-
10 déc. 2022 à 19:11
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 11 déc. 2022 à 14:23
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 11 déc. 2022 à 14:23
A voir également:
- TKINTER : Argument d'une fonction qui ne change pas...
- Tkinter canvas rotate - Forum Python
- Tableau tkinter - Forum Python
- Morpion python tkinter - Forum Python
- Tkinter rotate image - Forum Python
- Tkinter mac os ✓ - Forum Python
3 réponses
Bonsoir, problème classique, la valeur de i change dans ta boucle, comme sa référence est passée à tes multiples fonctions anonymes, alors normal que tes fonctions retournent la valeur finale de i.
Pour pallier cela, il faut garder la valeur de i dans une variable locale à la fonction.
... command=lambda value=i: afficher(value) ...
On aurait pu la nommer également i
Bonne continuation.
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
11 déc. 2022 à 14:23
11 déc. 2022 à 14:23
Bonjour,
pourquoi ces noms de boutons avec globals()
ça marche bien sans ça:
from tkinter import * def display(n): print(n) WIDTH, HEIGHT = 600, 600 main_win = Tk() main_win.title('test') main_win.geometry(str(WIDTH)+'x'+str(HEIGHT)+'+500+100') for k in range(5): b = Button(main_win, text=str(k), command=lambda n=k : display(n)) b.pack() main_win.mainloop()