Heim >Backend-Entwicklung >Python-Tutorial >Wie übergebe ich Argumente an Tkinter-Schaltflächenbefehle?

Wie übergebe ich Argumente an Tkinter-Schaltflächenbefehle?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-18 09:32:181004Durchsuche

How to Pass Arguments to Tkinter Button Commands?

Übergabe von Argumenten an Schaltflächenbefehle in Tkinter

In Tkinter können Sie beim Erstellen einer Schaltfläche eine Befehlsoption angeben, um die ausgeführte Aktion zu definieren auf Tastendruck. Es kann jedoch wünschenswert sein, Argumente an diesen Befehl zu übergeben.

Inline-Lambda-Funktion

Eine Lösung besteht darin, Lambdas zu verwenden, bei denen es sich um anonyme Funktionen handelt. Hier ist ein Beispiel:

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))

In diesem Code erfasst die Lambda-Funktion den Wert von someNumber und übergibt ihn als Argument an die Aktionsmethode, wenn die Schaltfläche gedrückt wird.

Wrapper-Methode

Ein anderer Ansatz besteht darin, eine Wrapper-Methode zu erstellen, die eine beliebige Anzahl von Argumenten akzeptiert und dann die ursprüngliche Aktionsmethode aufruft mit den passenden Argumenten:

import Tkinter as Tk

def action_wrapper(*args):
    action(*args)

someNumber = 10

button = Tk.Button(master=frame, text='press', command= action_wrapper(someNumber))

Das obige ist der detaillierte Inhalt vonWie übergebe ich Argumente an Tkinter-Schaltflächenbefehle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn