„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum führt meine Tkinter -Taste ihren Befehl sofort nach der Erstellung aus?

Warum führt meine Tkinter -Taste ihren Befehl sofort nach der Erstellung aus?

Gepostet am 2025-03-23
Durchsuche:220

Why Does My Tkinter Button Execute Its Command Immediately Upon Creation?

Button -Befehlsausführung bei der Erstellung

In dem angegebenen Code wird ein Schaltflächen -Widget mit seiner Befehlsoption erstellt, die auf das Ergebnis des Aufrufens einer Funktion mit einem Argument festgelegt wurde, was zu einer sofortigen Ausführung des Befehls erstellt wird. Um dieses Problem anzugehen, ist es entscheidend zu verstehen, wie Ereignisbehandlungen in tkinter funktioniert.

In Tkinter funktioniert die Ereignisbehandlung, indem eine Funktion mit einem Ereignis verknüpft wird (z. B. Klick). Wenn das Ereignis auftritt, ruft Tkinter die zugehörige Funktion an. In dem angegebenen Code enthält die Befehlsoption jedoch das Ergebnis des Aufrufens der Funktionstaste ('Hey') und nicht als Verweis auf die Funktion selbst.

Daher tut der Code im Wesentlichen das Gleiche wie:

result = button('hey')
b = Button(admin, text='as', command=result)

folglich wird der Befehl sofort ausgeführt, wenn die Schaltfläche erstellt wird, und druckt 'hey' und 'het', und wenn der Schaltfläche angeklickt wird, geschieht nichts, da der Befehl bereits ausgeführt wurde. Zum Beispiel:

b = button (admin, text = 'as', command = button)

b = Button(admin, text='as', command=button)

b = button (admin, text = 'as', command = lambda: button ('hey')

 Dies schafft eine anonyme Funktion, die, wenn sie angerufen wird, Button ('Hey'), die gewünschte Funktionalität bereitstellt.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3