ภาพรวม
Event ใน Tkinter สามารถผูกกับ Widget ได้เพื่อดำเนินการต่างๆ บน Widget นั้นๆ โดยเฉพาะอย่างยิ่ง สามารถผูก Event Handler กับ Canvas Items โดยใช้เมธอด bind(<Button>, callback) การผูก Event กับ Canvas Item จะทำให้ Item นั้นกลายเป็น Dynamic และสามารถปรับแต่งได้โดย Event Handler
ตัวอย่างโค้ด
# นำเข้าไลบรารีที่จำเป็น
from tkinter import *
import random
# สร้าง instance ของ Tkinter frame
win = Tk()
win.geometry("700x350")
# สร้าง Canvas
canvas = Canvas(win, width=700, height=350, bg='white')
def draw_shapes(e):
canvas.delete(ALL)
# สร้างวงกลมสุ่ม (แก้ไข typo 'O rangeRed2' เป็น 'OrangeRed2')
canvas.create_oval(random.randint(5,300), random.randint(1,300), 25, 25, fill='OrangeRed2')
canvas.pack()
# ผูกปุ่ม Spacebar กับฟังก์ชัน draw_shapes
win.bind("", draw_shapes)
win.mainloop()
ผลลัพธ์
การรันโค้ดจะแสดงหน้าต่างที่มี Canvas
เมื่อกดปุ่ม Space จะสร้างรูปทรงสุ่มในหน้าต่าง Canvas