如何在 Tkinter 中將 Enter 鍵繫結到函式

Jinku Hu 2023年1月30日 2019年12月10日
  1. 將事件繫結到函式
  2. 將按鍵鍵擊繫結到函式
  3. 將按鍵繫結到函式的類實現
如何在 Tkinter 中將 Enter 鍵繫結到函式

在本教程中,我們將介紹如何在 Tkinter 中將 Enter 鍵繫結到函式。

將事件繫結到函式

按下 Enter 鍵是一個事件,就如同點選按鈕一樣,我們可以繫結的函式或方法到這些事件,使事件觸發指定的函式。

widget.bind(event, handler)

如果 event 發生,它將自動觸發 handler

將按鍵鍵擊繫結到函式

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"

event 是傳遞給函式 callback 的隱藏引數。如果你在函式輸入引數中不列出它的話,它將報 TypeError 錯誤。

app.bind('<Return>', callback)

我們將 callback 函式繫結到 <Return> 事件,即 Enter 按鍵事件。

將按鍵繫結到函式的類實現

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

類的實現方法同上面開始最初介紹的方法類似。

我們將 event 物件的 keysym 屬性放在顯示的標籤中。

keysym 是鍵盤事件的鍵符號。正如我們上面介紹的,Enter 的鍵符號是 Return

Tkinter bind enter key to a function

Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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