Maison >développement back-end >Tutoriel Python >Comment puis-je transmettre des arguments aux commandes des boutons Tkinter sans exécution prématurée ?
Passer des arguments aux commandes de boutons dans Tkinter
Lors de la création de boutons dans Tkinter, il peut être utile de transmettre des arguments à la fonction de commande. Le code fourni :
import Tkinter as Tk win = Tk.Toplevel() frame = Tk.Frame(master=win).grid(row=1, column=1) button = Tk.Button(master=frame, text='press', command=action)
où action est la méthode appelée en appuyant sur le bouton, suggère que les arguments peuvent être passés directement en tant que paramètres à la commande du bouton :
button = Tk.Button(master=frame, text='press', command=action(someNumber))
Cependant, ceci exécutera l'action immédiatement, rendant le bouton inutile. Pour résoudre ce problème :
Solution utilisant Lambda
Un lambda permet la liaison d'arguments sans méthode wrapper explicite ni action de modification :
button = Tk.Button(master=frame, text='press', command= lambda: action(someNumber))
Ceci lie l'argument de manière efficace et garantit que l'action est invoquée correctement lorsque vous appuyez sur le bouton.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!