Passer des arguments aux commandes de bouton dans Tkinter
Dans Tkinter, lors de la création d'un bouton, vous pouvez spécifier une option de commande pour définir l'action exécutée en appuyant sur le bouton. Cependant, il peut être souhaitable de transmettre des arguments à cette commande.
Fonction Lambda en ligne
Une solution consiste à utiliser des lambdas, qui sont des fonctions anonymes. Voici un exemple :
import Tkinter as Tk win = Tk.Toplevel() frame = Tk.Frame(master=win).grid(row=1, column=1) someNumber = 10 # Pass an argument to the action method button = Tk.Button(master=frame, text='press', command= lambda: action(someNumber))
Dans ce code, la fonction lambda capture la valeur de someNumber et la transmet comme argument à la méthode d'action lorsque le bouton est enfoncé.
Méthode Wrapper
Une autre approche consiste à créer une méthode wrapper qui accepte un nombre arbitraire d'arguments, puis appelle la méthode d'action d'origine avec les arguments appropriés :
import Tkinter as Tk def action_wrapper(*args): action(*args) someNumber = 10 button = Tk.Button(master=frame, text='press', command= action_wrapper(someNumber))
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!