Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีผูกคีย์ตัวเลขทั้งหมดใน Tkinter

ขณะพัฒนาแอปพลิเคชัน 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

วิธีผูกคีย์ตัวเลขทั้งหมดใน Tkinter

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

วิธีผูกคีย์ตัวเลขทั้งหมดใน Tkinter