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

วิธีผูก Event กับรายการบน Tkinter Canvas

ภาพรวม

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