ขณะพัฒนาแอปพลิเคชัน Tkinter เราบ่อยครั้งที่เจอกรณีที่ต้องดำเนินการเฉพาะหรือเหตุการณ์กับ Keystrokes (บนคีย์บอร์ด) Tkinter มีกลไกจัดการเหตุการณ์เช่นนี้
คุณสามารถใช้ฟังก์ชัน bind(<Key>, callback) สำหรับแต่ละวิджชั่นที่ต้องการผูกเพื่อดำเนินการเหตุการณ์ประเภทหนึ่ง ทุกครั้งที่เราผูกคีย์กับเหตุการณ์ เหตุการณ์ callback จะเกิดขึ้นทุกครั้งที่กดคีย์ที่ตรงกัน
ตัวอย่าง
มาพิจารณาตัวอย่าง โดยใช้ฟังก์ชัน bind("", callback) เราสามารถผูกคีย์ตัวเลขทั้งหมดเพื่อแสดงข้อความบนหน้าจอได้ ซึ่งเมื่อผู้ใช้กดคีย์ (1-9) ข้อความจะปรากฏบนหน้าจอ
# นำเข้าไลบรารีที่จำเป็น
from tkinter import *
# สร้างอินสแตนซ์หน้าต่าง Tkinter
win = Tk()
win.geometry("700x300")
# ฟังก์ชันแสดงข้อความเมื่อกดคีย์
def add_label(e):
Label(win, text="You have pressed: " + e.char, font='Arial 16 bold').pack()
# สร้าง label widget
label = Label(win, text="Press any key in the range 0-9")
label.pack(pady=20)
label.config(font='Courier 18 bold')
# ผูกคีย์ตัวเลขทั้งหมดกับฟังก์ชัน callback
for i in range(10):
win.bind(str(i), add_label)
win.mainloop()
ผลลัพธ์
การรันโค้ดสนิปเพทด้านบนจะแสดงหน้าต่างพร้อม Label widget

ทุกครั้งที่คุณกดคีย์ในช่วง (0-9) จะแสดงข้อความบนหน้าจอ
