Widget Canvas là một trong những widget đa năng trong Tkinter được dùng để tạo minh họa, vẽ hình dạng, cung, hình ảnh và các bố cục phức tạp khác trong ứng dụng. Để tạo widget Canvas, bạn cần tạo hàm khởi tạo canvas(root, **options).
Bạn có thể dùng các hàm factory để tạo văn bản, hình ảnh, cung và định nghĩa các hình dạng khác trong canvas. Trong một số trường hợp, nếu bạn muốn tạo canvas khác sử dụng cùng canvas để giữ quy trình ứng dụng nhất quán, bạn có thể tạo nút để gọi sự kiện tạo canvas khác.
Để hiểu điều này, hãy tạo một canvas và nút để mở canvas khác để cập nhật widget canvas chính.
Ví dụ
# Nhập thư viện cần thiết
from tkinter import *
from tkinter import ttk
# Tạo instance của cửa sổ tkinter
win = Tk()
win.geometry("700x350")
# Tạo instance của lớp 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()
# Tạo widget canvas
canvas = Canvas(win, height=400, width=300)
canvas.pack()
# Tạo widget nút
button = ttk.Button(canvas, text="Open Window", command=open_new_win)
button.pack(pady=30)
win.mainloop()
Kết quả
Chạy mã trên sẽ hiển thị cửa sổ với nút để mở cửa sổ canvas khác.

Khi bạn nhấn nút, nó sẽ hiển thị thông báo trên cửa sổ canvas chính.
