Maison >développement back-end >Tutoriel Python >Comment puis-je transmettre des arguments aux commandes des boutons Tkinter sans exécution prématurée ?

Comment puis-je transmettre des arguments aux commandes des boutons Tkinter sans exécution prématurée ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-21 03:12:10789parcourir

How Can I Pass Arguments to Tkinter Button Commands Without Premature Execution?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn