Widget Canvas ใน Tkinter เป็นหนึ่งใน widget ที่หลากหลายที่สุด ใช้สำหรับพัฒนา GUI แบบไดนามิก เช่น รูปร่าง โลโก้ อาร์ค อนิเมชันวัตถุ และอื่นๆ ด้วย create_rectangle(top, left, bottom, right, **options) เราสามารถสร้างรูปสี่เหลี่ยมใน canvas widget ทุก item ใน Canvas รองรับคุณสมบัติหลายอย่าง เช่น คุณสมบัติรูปร่าง ขนาด สี ขอบโครง เป็นต้น
สมมติว่าเราต้องการเปลี่ยนสีของสี่เหลี่ยมที่วาดไว้ด้วยปุ่ม กำหนด callback function ที่ขยายคุณสมบัติเช่น fill=color จะเปลี่ยนสีของสี่เหลี่ยม
ตัวอย่าง
# นำเข้าไลบรารีที่จำเป็น
from tkinter import *
# สร้างอินสแตนซ์ของ Tkinter Frame
win = Tk()
# กำหนดขนาดของ Tkinter Frame
win.geometry("700x250")
# กำหนดฟังก์ชันเปลี่ยนสีสี่เหลี่ยม
def change_color(*args):
canvas.itemconfig(shape, fill='blue')
# เพิ่ม canvas ภายใน frame
canvas = Canvas(win, width=500, height=250)
canvas.pack()
# เพิ่มสี่เหลี่ยมใน canvas widget
shape = canvas.create_rectangle(500, 100, 50, 50, fill='red')
# เพิ่มปุ่มเพื่อเปลี่ยนสีสี่เหลี่ยม
button = Button(win, text="Change Color", font=('Helvectica 11'), command=lambda: change_color(canvas))
button.place(relx=.5, rely=.5, anchor=CENTER)
win.mainloop()
ผลลัพธ์
การรันโค้ดจะแสดงหน้าต่างพร้อมสี่เหลี่ยมและปุ่ม widget

เมื่อคลิกปุ่ม "Change Color" จะเปลี่ยนสีสี่เหลี่ยมเป็นสีน้ำเงิน
