Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Argumente an Tkinter-Schaltflächenbefehle übergeben, ohne sie vorzeitig auszuführen?

Wie kann ich Argumente an Tkinter-Schaltflächenbefehle übergeben, ohne sie vorzeitig auszuführen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-21 03:12:10788Durchsuche

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

Argumente an Schaltflächenbefehle in Tkinter übergeben

Beim Erstellen von Schaltflächen in Tkinter kann es nützlich sein, Argumente an die Befehlsfunktion zu übergeben. Der bereitgestellte Code:

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)

wobei action die Methode ist, die beim Drücken der Schaltfläche aufgerufen wird, legt nahe, dass Argumente direkt als Parameter an den Befehl der Schaltfläche übergeben werden können:

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

Dies ist jedoch der Fall führt die Aktion sofort aus, wodurch die Schaltfläche unbrauchbar wird. So beheben Sie dieses Problem:

Lösung mit Lambda

Ein Lambda ermöglicht die Argumentbindung ohne explizite Wrapper-Methode oder Änderungsaktion:

button = Tk.Button(master=frame, text='press', command= lambda: action(someNumber))

Dies bindet das Argument effektiv und stellt sicher, dass die Aktion beim Drücken der Taste korrekt aufgerufen wird.

Das obige ist der detaillierte Inhalt vonWie kann ich Argumente an Tkinter-Schaltflächenbefehle übergeben, ohne sie vorzeitig auszuführen?. 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