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()
點(diǎn)擊按鈕的計(jì)數(shù)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()
創(chuàng)建文本框,里面有一個(gè)按鈕和文本框,通過(guò)獲取文本框的內(nèi)容,每點(diǎn)擊一次按鈕,都復(fù)制文本框中的內(nèi)容并一起顯示在文本框中。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中參數(shù)第一個(gè)為插入的位置。
將文本框中的內(nèi)容反面顯示于文本框中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()
添加密碼框,用于輸入密碼的文本框常常在輸入密碼時(shí)不會(huì)顯示密碼,而是在每個(gè)字符的位置顯示星號(hào)(*),使用方式:在添加文本框時(shí),添加一個(gè)額外的具名自變量,這樣文本框就變成了一個(gè)密碼框
在GUI中會(huì)有一個(gè)輸入密碼的框和一個(gè)提交密碼的按鈕。如果密碼正確,底部會(huì)出現(xiàn)一個(gè)寫有Correct的標(biāo)簽,負(fù)責(zé)它會(huì)寫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()
構(gòu)造句子生成器:列表與隨機(jī)函數(shù)的配合使用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()
猜數(shù)字游戲:生成一個(gè)1-10之間的隨機(jī)數(shù),看是否成功猜測(cè),并計(jì)算游戲的勝利次數(shù)(標(biāo)簽顯示)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()
滾動(dòng)條的創(chuàng)建與使用import?Tkinter?as?tk
window=tk.Tk()
slider=tk.Scale(window,from_=0,to=100)
slider.pack()
tk.mainloop()
畫布的創(chuàng)建import?Tkinter?as?tk
window=tk.Tk()
colour="#FF0000"
canvas=tk.Canvas(window,height=300,width=300,bg=colour)
canvas.pack()
window.mainloop()
顏色選擇器:畫布與滾動(dòng)條的配合使用
注:通過(guò)三個(gè)滾動(dòng)條的選擇從而決定三原色紅,綠,藍(lán)三個(gè)顏色的占用,從而組成喜歡的顏色。而在實(shí)際畫畫中,所有的顏色由紅,黃,藍(lán)混合組成。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()
改進(jìn):添加一個(gè)文本框用來(lái)顯示三原色的選擇(16進(jìn)制)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()
一個(gè)計(jì)點(diǎn)擊速度的游戲:記錄點(diǎn)擊的次數(shù),直到達(dá)到目地?cái)?shù),輸出所花費(fèi)時(shí)間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()
總結(jié)
以上是生活随笔為你收集整理的python gui tkinter_python学习之GUI(Tkinter)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何防止表单的重复提交
- 下一篇: a标签跳转后关闭当前页面_微信小程序20