一、控制窗口背景顏色
通過configure(bg='color')方法可以更改Tkinter窗口的背景顏色。其中,color可以是十六進制的顏色值或者Tkinter預設的顏色名稱。
from tkinter import *
root = Tk()
# 設置窗口大小
root.geometry("400x300")
# 設置窗口背景顏色
root.configure(bg='coral')
root.mainloop()
運行上述代碼,窗口的背景顏色將會變成coral。
二、控制控件背景顏色
除了可以控制窗口的背景顏色,還可以通過configure(bg='color')方法控制控件的背景顏色。以下是一個使用Button控件的例子:
from tkinter import *
root = Tk()
# 設置窗口大小
root.geometry("400x300")
# 設置窗口背景顏色
root.configure(bg='lightgreen')
# 創建Button控件
my_button = Button(root, text="點擊我", font=("Arial Bold", 20), bg='cornflowerblue')
# 設置Button控件的背景顏色
my_button.configure(bg='yellow')
# 顯示Button控件
my_button.pack(pady=50)
root.mainloop()
運行上述代碼,在窗口中會出現一個Button控件,它的背景顏色是yellow。
三、通過顏色選擇器控制背景顏色
除了可以通過代碼控制背景顏色,我們還可以利用顏色選擇器讓用戶自己選擇喜歡的顏色,然後將選擇的顏色作為背景顏色。
from tkinter import *
from tkinter import colorchooser
root = Tk()
# 設置窗口大小
root.geometry("400x300")
def change_bg_color():
'''
打開顏色選擇器,並將選擇的顏色作為窗口的背景顏色
'''
color = colorchooser.askcolor(title="選擇背景顏色")
root.configure(bg=color[1])
# 創建Button控件
my_button = Button(root, text="點擊我選擇背景顏色", font=("Arial Bold", 20), bg='cornflowerblue', command=change_bg_color)
# 顯示Button控件
my_button.pack(pady=50)
root.mainloop()
運行上述代碼,用戶可以通過點擊按鈕選擇背景顏色。
四、擴展:使用漸變色作為背景顏色
為了讓界面更加美觀,我們可以使用漸變色作為背景色。具體的實現方式是通過create_rectangle()方法創建一個矩形,並為矩形指定漸變色。
import tkinter as tk
root = tk.Tk()
# 設置窗口大小
root.geometry("400x300")
# 在畫布上創建一個矩形,並為其指定漸變色
canvas = tk.Canvas(root, width=400, height=300)
canvas.pack()
start_color = "#63d8f1"
end_color = "#eeeeee"
canvas.create_rectangle(0, 0, 400, 300, fill=start_color, width=0)
for i in range(300):
r = int(i * int(end_color[1:3], 16) / 300 + (300 - i) * int(start_color[1:3], 16) / 300)
g = int(i * int(end_color[3:5], 16) / 300 + (300 - i) * int(start_color[3:5], 16) / 300)
b = int(i * int(end_color[5:7], 16) / 300 + (300 - i) * int(start_color[5:7], 16) / 300)
color = '#{:02x}{:02x}{:02x}'.format(r, g, b)
canvas.create_line(0, i, 400, i, width=1, fill=color)
root.mainloop()
運行上述代碼,窗口的背景將會是一個從上到下逐漸變化的漸變色。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/258630.html
微信掃一掃
支付寶掃一掃