python gui tkinter_python学习之GUI(Tkinter)
button按鈕的生成:import?Tkinter?as?tk
window=tk.Tk()
def?buttonClick():
print?"Beep!"
button=tk.Button(window,text="Click?me!",command=buttonClick)
button.pack()
window.mainloop()
同理將方法改為改變按鈕上的文字import?Tkinter?as?tk
window=tk.Tk()
def?buttonClick():
#????print?"Beep!"
button.config(text="Clicked!")
button=tk.Button(window,text="Click?me!",command=buttonClick)
button.pack()
window.mainloop()
點擊按鈕的計數import?Tkinter?as?tk
window=tk.Tk()
count=0
def?buttonCount():
global?count
count+=1
button.config(text=str(count))
button=tk.Button(window,text="count",command=buttonCount)
button.pack()
window.mainloop()
創建文本框,里面有一個按鈕和文本框,通過獲取文本框的內容,每點擊一次按鈕,都復制文本框中的內容并一起顯示在文本框中。import?Tkinter?as?tk
window=tk.Tk()
def?changeStr():
stringCopy=entry.get()
entry.insert(0,stringCopy)
entry=tk.Entry(window)
button=tk.Button(window,text="StrChange",command=changeStr)
entry.pack()
button.pack()
window.mainloop()
其中,entry.insert中參數第一個為插入的位置。
將文本框中的內容反面顯示于文本框中import?Tkinter?as?tk
window=tk.Tk()
def?changeStr():
stringCopy=entry.get()
stringCopy=stringCopy[::-1]
entry.delete(0,tk.END)
entry.insert(0,stringCopy)
entry=tk.Entry(window)
button=tk.Button(window,text="StrChange",command=changeStr)
entry.pack()
button.pack()
window.mainloop()
添加密碼框,用于輸入密碼的文本框常常在輸入密碼時不會顯示密碼,而是在每個字符的位置顯示星號(*),使用方式:在添加文本框時,添加一個額外的具名自變量,這樣文本框就變成了一個密碼框
在GUI中會有一個輸入密碼的框和一個提交密碼的按鈕。如果密碼正確,底部會出現一個寫有Correct的標簽,負責它會寫Incorrect。import?Tkinter?as?tk
window=tk.Tk()
def?checkPassword():
password="Apple"
enterPass=passwordEntry.get()
if?enterPass?==?password:
confirmLabel.config(text="Correct")
else:
confirmLabel.config(text="Incorrect")
passwordLabel=tk.Label(window,text="Password")
passwordEntry=tk.Entry(window,show="*")
button=tk.Button(window,text="Enter",command=checkPassword)
confirmLabel=tk.Label(window)
passwordLabel.pack()
passwordEntry.pack()
button.pack()
confirmLabel.pack()
window.mainloop()
構造句子生成器:列表與隨機函數的配合使用import?Tkinter?as?tk
import?random
window=tk.Tk()
def?randomNoun():
nouns=["cats","hippos","cakes"]
noun=random.choice(nouns)
return?noun
def?randomVerb():
verbs=["eats","likes","hates","has"]
verb=random.choice(verbs)
return?verb
def??buttonClick():
name=nameEntry.get()
verb=randomVerb()
noun=randomNoun()
sentence=name+"?"+verb+"?"+noun
result.delete(0,tk.END)
result.insert(0,sentence)
nameLabel=tk.Label(window,text="Name:")
nameEntry=tk.Entry(window)
button=tk.Button(window,text="Generate",command=buttonClick)
result=tk.Entry(window)
nameLabel.pack()
nameEntry.pack()
button.pack()
result.pack()
window.mainloop()
猜數字游戲:生成一個1-10之間的隨機數,看是否成功猜測,并計算游戲的勝利次數(標簽顯示)import?random
import?Tkinter?as?tk
window=tk.Tk()
maxNo=10
score=0
rounds=0
def?buttonClick():
global?score
global?rounds
try:
guess=int(guessBox.get())
if?0
result=random.randrange(1,maxNo+1)
if?guess==result:
score=score+1
rounds+=1
else:
result="Entry?not?valid"
except:
result="Entry?not?valid"
resultLabel.config(text=result)
scoreLabel.config(text=str(score)+"/"+str(rounds))
guessBox.delete(0,tk.END)
guessLabel=tk.Label(window,text="Enter?a?number?from?1?to"+str(maxNo))
guessBox=tk.Entry(window)
resultLabel=tk.Label(window)
scoreLabel=tk.Label(window)
button=tk.Button(window,text="guess",command=buttonClick)
guessLabel.pack()
guessBox.pack()
resultLabel.pack()
scoreLabel.pack()
button.pack()
window.mainloop()'''
'''import?Tkinter?as?tk
window=tk.Tk()
slider=tk.Scale(window,from_=0,to=100)
slider.pack()
tk.mainloop()
滾動條的創建與使用import?Tkinter?as?tk
window=tk.Tk()
slider=tk.Scale(window,from_=0,to=100)
slider.pack()
tk.mainloop()
畫布的創建import?Tkinter?as?tk
window=tk.Tk()
colour="#FF0000"
canvas=tk.Canvas(window,height=300,width=300,bg=colour)
canvas.pack()
window.mainloop()
顏色選擇器:畫布與滾動條的配合使用
注:通過三個滾動條的選擇從而決定三原色紅,綠,藍三個顏色的占用,從而組成喜歡的顏色。而在實際畫畫中,所有的顏色由紅,黃,藍混合組成。import?Tkinter?as?tk
window=tk.Tk()
def?sliderUpdate(source):
red=redSlider.get()
green=greenSlider.get()
blue=blueSlider.get()
colour="#%02x%02x%02x"%(red,green,blue)
canvas.config(bg=colour)
redSlider=tk.Scale(window,from_=0,to=255,command=sliderUpdate)
greenSlider=tk.Scale(window,from_=0,to=255,command=sliderUpdate)
blueSlider=tk.Scale(window,from_=0,to=255,command=sliderUpdate)
canvas=tk.Canvas(window,width=200,height=200)
redSlider.grid(row=1,column=1)
greenSlider.grid(row=1,column=2)
blueSlider.grid(row=1,column=3)
canvas.grid(row=2,column=1,columnspan=3)
tk.mainloop()
改進:添加一個文本框用來顯示三原色的選擇(16進制)import?Tkinter?as?tk
window=tk.Tk()
def?sliderUpdate(source):
red=redSlider.get()
green=greenSlider.get()
blue=blueSlider.get()
colour="#%02x%02x%02x"%(red,green,blue)
canvas.config(bg=colour)
hexText.delete(0,tk.END)
hexText.insert(0,colour)
redSlider=tk.Scale(window,from_=0,to=255,command=sliderUpdate)
greenSlider=tk.Scale(window,from_=0,to=255,command=sliderUpdate)
blueSlider=tk.Scale(window,from_=0,to=255,command=sliderUpdate)
canvas=tk.Canvas(window,width=200,height=200)
hexText=tk.Entry(window)
redSlider.grid(row=1,column=1)
greenSlider.grid(row=1,column=2)
blueSlider.grid(row=1,column=3)
canvas.grid(row=2,column=1,columnspan=3)
hexText.grid(row=3,column=1,columnspan=3)
tk.mainloop()
一個計點擊速度的游戲:記錄點擊的次數,直到達到目地數,輸出所花費時間import?Tkinter?as?tk
import?time
window=tk.Tk()
clicks=0
start=0
goal=10
def?buttonClick():
global?clicks
global?start
if?clicks==0:
start=time.time()
clicks=clicks+1
elif?clicks+1>=goal:
score=time.time()-start
label.config(text="Time:?"+str(score))
clicks=0
else:
clicks=clicks+1
slider.set(clicks)
button=tk.Button(window,text="Click?me",command=buttonClick)
slider=tk.Scale(window,from_=0,to=goal)
label=tk.Label(window)
button.pack()
slider.pack()
label.pack()
window.mainloop()
總結
以上是生活随笔為你收集整理的python gui tkinter_python学习之GUI(Tkinter)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何防止表单的重复提交
- 下一篇: a标签跳转后关闭当前页面_微信小程序20