import tkinter as tk
import random
win=tk.Tk()
win.geometry("200x100")
win.attributes("-toolwindow", 1)
以上這段已經解釋過了,就不再贅述了。
import tkinter as tk
import random
win=tk.Tk()
win.geometry("200x100")
win.attributes("-toolwindow", 1)
以上這段已經解釋過了,就不再贅述了。
win.title("隨機顏色產生器")
#將視窗標題設為固定名稱。
stringvar = tk.StringVar()
當我們想要改變label中的文字時,有兩種方式可以使用,一種是如之前所說的,利用config(text=’’)
去改變。另一種是利用變數的方式,先新增一個變數stringvar
代表我們將要儲存的color字串值,stringvar的內容為tk.StringVar()
。
整行程式的內容就是,將tk模組中的StringVar()函式變成一個叫做stringvar的變數。
至於StringVar()的作用想必大家看名稱就很清楚了。
def randomcolor():```
colorArr = ['1','2','3','4','5','6','7','8','9','A','B','C','D','E','F']
color = ""
for i in range(6):
color += colorArr[random.randint(0,14)]
label.config(bg="#"+color)
以上這段已經解釋過了,就不再贅述了。
if color=="000000":
在我們上一個版本的程式中,因為色碼是顯示在視窗標題上,所以不會遇到文字顏色與背景顏色相同的狀況,但是現在顯示的地方改為Label了,必須要考慮到兩者顏色相同的狀況。
首先,文字的顏色為黑色,因此目前需要考慮到的狀況只有背景為黑色時才需要將兩者顏色進行區分。
白色的色碼為000000,所以當偵測到color
的值為000000時,將進入這個判斷式。label.config(fg='#FFFFFF')
#將文字顏色設為白色。stringvar.set("#"+color)
若我們要改變StringVar()
的值,需要使用set
函式才能給予值。
label=tk.Label(textvariable=stringvar,width=15,height=3)
最重要的地方在這裡,必須讓textvariable=stringvar
,否則stringvar的值將不會傳送到label的textvariable上。label.pack()
button=tk.Button(text="點擊隨機產生顏色",width=15,height=1)
button.config(command=randomcolor)
button.pack()
win.mainloop()
以上這段已經解釋過了,就不再贅述了。