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

เปลี่ยนสีสี่เหลี่ยม Tkinter เมื่อคลิก


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

เปลี่ยนสีสี่เหลี่ยม Tkinter เมื่อคลิก

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

เปลี่ยนสีสี่เหลี่ยม Tkinter เมื่อคลิก