tkinter เป็นไลบรารี GUI มาตรฐานของ Python ใช้สร้างแอปพลิเคชันเดสก์ท็อป ในบทความนี้เราจะเรียนรู้เกี่ยวกับ Binding คือการผูกเหตุการณ์ (Event) กับฟังก์ชันหรือเมธอด เพื่อให้เมื่อเหตุการณ์นั้นเกิดขึ้น ฟังก์ชันที่ผูกไว้จะถูกเรียกใช้งาน
การผูกเหตุการณ์คีย์บอร์ด (Keyboard Event Binding)
ตัวอย่างด้านล่างผูกการกดปุ่มคีย์บอร์ดทุกปุ่มกับฟังก์ชัน เมื่อเปิดหน้าต่าง GUI แล้วกดปุ่มคีย์บอร์ดใดๆ จะแสดงข้อความว่ามีการกดปุ่ม
ตัวอย่าง
from tkinter import *
def PressAnyKey(label):
value = label.char
print(value, ' A button is pressed')
base = Tk()
base.geometry('300x150')
base.bind('', lambda i: PressAnyKey(i))
mainloop()
ผลลัพธ์

การผูกเหตุการณ์คลิกเมาส์ (Mouse Click Event Binding)
ตัวอย่างนี้แสดงวิธีผูกเหตุการณ์คลิกเมาส์ต่างๆ บนหน้าต่าง tkinter ให้เรียกฟังก์ชัน แสดงตำแหน่ง (x, y) ที่คลิก ได้แก่ คลิกซ้าย 2 ครั้ง (Double click) คลิกขวา และคลิกกลาง (Scroll button)
ตัวอย่าง
from tkinter import *
from tkinter.ttk import *
base = Tk()
base.geometry('300x150')
def scroll(label):
print('Scroll button clicked at x = %d, y = %d' % (label.x, label.y))
def right_click(label):
print('Right button clicked at x = %d, y = %d' % (label.x, label.y))
def left_click(label):
print('Double clicked left button at x = %d, y = %d' % (label.x, label.y))
frame = Frame(base, height=100, width=200)
frame.bind('', scroll) # คลิกกลาง (Scroll)
frame.bind('', right_click) # คลิกขวา
frame.bind('', left_click) # คลิกซ้าย 2 ครั้ง
frame.pack()
mainloop()
ผลลัพธ์

หมายเหตุ: รหัสเหตุการณ์สำคัญใน tkinter ได้แก่ <Button-1> (คลิกซ้าย), <Button-2> (คลิกกลาง), <Button-3> (คลิกขวา), <Double-1> (ดับเบิลคลิกซ้าย), <Key> (กดคีย์บอร์ด), <Motion> (เลื่อนเมาส์)