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