Wie man die Eingabetaste an eine Funktion in Tkinter bindet

  1. Ereignis an eine Funktion binden
  2. Tastendruck an eine Funktion binden
  3. 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.

Tkinter bindet die Enter-Taste an eine Funktion

comments powered by Disqus