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

เปลี่ยนสีพื้นหลัง widget แบบไดนามิกใน Tkinter


เพื่อกำหนดค่าคุณสมบัติของ widget ในแอปพลิเคชัน Tkinter เรามักใช้เมธอด 'configure(**options)' เราสามารถปรับแต่งสีพื้นหลัง คุณสมบัติฟอนต์ และคุณสมบัติเฉพาะอื่นๆ ของ widget ในแอปพลิเคชันได้

อาจมีกรณีที่เราต้องการเปลี่ยนสีพื้นหลังของ widget แบบไดนามิก แม้เราจะสามารถกำหนดลิสต์สีและเปลี่ยนสีขณะวนลูปผ่านลิสต์ได้

ตัวอย่าง

# นำเข้าไลบรารีที่จำเป็น
from tkinter import *
from random import shuffle
import time

# สร้างอินสแตนซ์ของ tkinter frame
win = Tk()
win.geometry("700x250")

# เพิ่มฟอนต์สำหรับ widget ทั้งหมด
win.option_add("*Font", "aerial")

# กำหนดสีพื้นหลังสำหรับ widget ทั้งหมด
def change_color():
    colors = ['#e9c46a', '#e76f51', '#264653', '#2a9d8f', '#e85d04', '#a2d2ff', '#06d6a0', '#4d908e']
    while True:
        shuffle(colors)
        for i in range(0, len(colors)):
            win.config(background=colors[i])
            win.update()
            time.sleep(1)

# แสดงชุด widgets
label = Label(win, text="Hello World", bg='white')
label.pack(pady=40, padx=30)

# สร้างปุ่มเพื่อเปลี่ยนสีพื้นหลังของ widgets
btn = Button(win, text="Button", command=change_color)
btn.pack(pady=10)

win.mainloop()

ผลลัพธ์

การคอมไพล์โค้ดจะแสดงหน้าต่างที่มี Label widget และปุ่ม

เปลี่ยนสีพื้นหลัง widget แบบไดนามิกใน Tkinter

เมื่อเรากดปุ่ม จะเรียกฟังก์ชัน change_color() ซึ่งเปลี่ยนสีพื้นหลังของหน้าต่างแบบไดนามิก

เปลี่ยนสีพื้นหลัง widget แบบไดนามิกใน Tkinter