如何在 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
。
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