Wie man die Eingabetaste an eine Funktion in Tkinter bindet
- Ereignis an eine Funktion binden
- Tastendruck an eine Funktion binden
-
Binden Sie den Tastendruck an eine Funktion in der Klassenmethode Beispiel:
Callback
In diesem Tutorial werden wir vorstellen, wie man die Enter an eine Funktion in Tkinter bindet.
Ereignis an eine Funktion binden
Das Drücken der Enter ist ein Ereignis, wie z. B. das Klicken einer Taste, und wir könnten Funktionen oder Methoden an dieses Ereignis binden, damit das Ereignis die angegebene Funktion auslöst.
widget.bind(event, handler)
Wenn das Enter eintritt, wird es automatisch den handler
auslösen.
Tastendruck an eine Funktion binden
import tkinter as tk
app = tk.Tk()
app.geometry("200x100")
def callback(event):
label["text"] = "You pressed Enter"
app.bind("<Return>", callback)
label = tk.Label(app, text="")
label.pack()
app.mainloop()
def callback(event):
label["text"] = "You pressed Enter"
Das event
ist ein verstecktes Argument, das an die Funktion übergeben wird. Es wird TypeError
auslösen, wenn Sie es nicht im Funktions-Eingabe-Argument angeben.
app.bind("<Return>", callback)
Wir binden die callback
Funktion an das <Return>
Ereignis, oder anders gesagt, Enter Tastendruck-Ereignis.
Binden Sie den Tastendruck an eine Funktion in der Klassenmethode Beispiel: Callback
import tkinter as tk
class app(tk.Frame):
def __init__(self):
self.root = tk.Tk()
self.root.geometry("300x200")
self.label = tk.Label(self.root, text="")
self.label.pack()
self.root.bind("<Return>", self.callback)
self.root.mainloop()
def callback(self, event):
self.label["text"] = "You pressed {}".format(event.keysym)
app()
Diese Klassenimplementierung ähnelt der obigen Methode.
Wir setzen das keysym
Attribut des event
Objektes in das gezeigte Label.
keysym
ist das Tastensymbol des Keyboard-Events. Enter ist Return
, wie wir oben eingeführt haben.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook