วิджชั่น Canvas เป็นหนึ่งในวิджชั่นที่หลากหลายใน Tkinter ใช้สร้างภาพประกอบ วาดรูปทรง โค้ง รูปภาพ และเลย์เอาต์ซับซ้อนอื่นๆ ในแอปพลิเคชัน ในการสร้าง Canvas widget คุณต้องสร้างคอนสตรัคเตอร์ของ canvas(root, **options)
คุณสามารถใช้ฟังก์ชันโรงงานเพื่อสร้างข้อความ รูปภาพ โค้ง และกำหนดรูปทรงอื่นๆ ใน canvas ในบางกรณี หากคุณต้องการสร้าง canvas อีกอันโดยใช้ canvas เดียวกันเพื่อให้เวิร์กโฟลว์ของแอปพลิเคชันสม่ำเสมอ คุณสามารถสร้างปุ่มเพื่อเรียกเหตุการณ์ที่สร้าง canvas อีกอันได้
เพื่อทำความเข้าใจ เราจะสร้าง canvas และปุ่มเพื่อเปิด canvas อีกอันเพื่ออัปเดต primary canvas widget
ตัวอย่าง
# นำเข้าไลบรารีที่จำเป็น
from tkinter import *
from tkinter import ttk
# สร้างอินสแตนซ์หน้าต่าง Tkinter
win = Tk()
win.geometry("700x350")
# สร้างอินสแตนซ์คลาส style
style = ttk.Style(win)
def open_new_win():
top = Toplevel(win)
canvas1 = Canvas(canvas, height=180, width=100, bg="#aaaffe")
canvas1.pack()
Label(canvas1, text="You can modify this text", font='Helvetica 18 bold').pack()
# สร้าง canvas widget
canvas = Canvas(win, height=400, width=300)
canvas.pack()
# สร้างปุ่ม widget
button = ttk.Button(canvas, text="Open Window", command=open_new_win)
button.pack(pady=30)
win.mainloop()
ผลลัพธ์
การรันโค้ดด้านบนจะแสดงหน้าต่างพร้อมปุ่มเปิดหน้าต่าง canvas อีกอัน

เมื่อคุณคลิกปุ่ม จะแสดงข้อความบน primary canvas window
