Python GUI編程學(xué)習(xí)筆記之tkinter界面布局顯示詳解
本文實(shí)例講述了Python GUI編程學(xué)習(xí)筆記之tkinter界面布局顯示。分享給大家供大家參考,具體如下:
相關(guān)內(nèi)容: pack 介紹 常用參數(shù) 使用情況 常用函數(shù) grid 介紹 常用參數(shù) 使用情況 常用函數(shù) place 介紹 常用參數(shù) 使用情況 常用函數(shù)首發(fā)時(shí)間:2018-03-04 14:20
pack: 介紹: pack幾何管理器按行或列打包小部件。 可以使用填充fill,展開(kāi)expand和靠邊side等選項(xiàng)來(lái)控制此幾何體管理器。 pack的排放控件的形式就像將一個(gè)個(gè)控件按大小從上到下放過(guò)去





from tkinter import *root=Tk()# for i in range(10): ##side # btn = Button(text=i) # btn.pack(side=LEFT) # btn.pack(side=RIGHT) # btn.pack(side=(TOP,LEFT)) ####fill # btn.pack(fill=X) # btn.pack(side=LEFT,fill=Y) # btn.pack(fill=BOTH)##expand# btn1=Button(text=1,bg=’green’)# btn2=Button(text=2,bg=’yellow’)# btn1.pack(fill=X)# btn2.pack(expand=True)#anchor:# btn1=Button(text=1,bg=’green’)# btn2=Button(text=2,bg=’yellow’)# btn1.pack(fill=X)# btn2.pack(anchor=E)#pack_propagete# btn1=Button(text=1,bg=’green’)# btn2=Button(text=2,bg=’yellow’)# root.pack_propagate(0)# btn1.pack()# btn2.pack()#pack_forget:# import time,threading# label=Label(text='警告!')# label.pack()# def run():# start_time=time.time()# while True:# if time.time()-start_time>3:# label.pack_forget()# break# t=threading.Thread(target=run)# t.setDaemon(True)# t.start()root.mainloop()grid: 介紹:grid是格子的意思,grid可以將控件區(qū)塊式擺放. 常用參數(shù): row: 行號(hào),區(qū)分不同控件是否處于同一行 column: 列號(hào),區(qū)分不同控件是否處于同一列 sticky: 決定控件的貼靠方向,該選項(xiàng)從集合N,S,E,W [東南西北的意思],中取一個(gè)或多個(gè)值。比如要將標(biāo)簽與左邊框?qū)R,可以使用W(西)
rowspan:行跨度,決定某個(gè)控件占的行數(shù) ,默認(rèn)一行 columnspan:列跨度,決定某個(gè)控件占的列數(shù),默認(rèn)一列 ipadx, ipady:內(nèi)邊距 padx,pady:外邊距 適用情況: 設(shè)計(jì)對(duì)話(huà)框的時(shí)候特別方便
區(qū)塊化擺放的時(shí)候 補(bǔ)充: 常用函數(shù): grid_forget :移除控件,但并沒(méi)有進(jìn)行摧毀,可以再次使用grid或其他方式來(lái)顯示 [grid_remove有同樣作用]
grid_propagete
:由窗口調(diào)用來(lái)配置pack控件時(shí)窗口的大小,當(dāng)flag=0時(shí),那么窗口大小將不再僅僅包裹住所有控件,這時(shí)候窗口的高度和寬度設(shè)置才可以生效grid_slaves():以列表方式返回本組件的所有子組件對(duì)象。
from tkinter import *root=Tk()root.title('我的窗口')label_user=Label(text=’用戶(hù)名:’,bg=’green’)label_pwd=Label(text=’密碼:’,bg=’green’)user=Entry()pwd=Entry()# row,column,stickylabel_user.grid(row=0,column=0,sticky=W) #一個(gè)有sticky,一個(gè)沒(méi)有sticky,以作區(qū)分label_pwd.grid(row=1,column=0)# rowspan,columnspanuser.grid(row=0,column=1)pwd.grid(row=1,column=1)btn=Button(text='提交')btn.grid(row=0,column=3,rowspan=2,columnspan=2,padx=5, pady=5)# 下面主要是將第一列拉大來(lái)顯示上面sticky的效果v=IntVar()check=Checkbutton(text='下次自動(dòng)登錄',variable=v,)check.grid(row=2,column=0,sticky=W)# _forget:import time,threadinglabel=Label(text='歡迎登錄!',bg=’blue’)label.grid()def run(): start_time=time.time() while True: if time.time()-start_time>3: label.grid_forget() breakt=threading.Thread(target=run)t.setDaemon(True)t.start()root.mainloop()place: 介紹:可以使用絕對(duì)的位置或相對(duì)位置來(lái)擺放控件。
常用參數(shù): x:控件在窗口中的x坐標(biāo) y:控件在窗口中的y坐標(biāo)
relx,rely:與主窗口的相對(duì)位置,比如
relwidth,relheight:相對(duì)大小,比如height=0.5,width=0.5時(shí)控件占據(jù)窗口的四分之一大小 適用情況: 自定義顯示方式 將按鈕定位在對(duì)話(huà)框中 補(bǔ)充: 常用函數(shù): place_forget():移除控件,但并沒(méi)有進(jìn)行摧毀,可以再次使用place或其他方式來(lái)顯示place_slaves():以列表方式返回本組件的所有子組件對(duì)象。[slaves()具有同樣功能]place_info():返回place提供的選項(xiàng)所對(duì)應(yīng)得值。
from tkinter import *root=Tk()root.geometry(’100x100’)label=Label(text='用戶(hù)名:',bg=’green’)entry=Entry()label.pack(fill=X)#x,y# entry.place(x=0,y=0)#relx,rely# entry.place(relx=0.3, rely=0.3)# entry.place(relx=0.5, rely=0.5)#relheight,relwidth# entry.place(relx=0.5, rely=0.5,relheight=0.5,relwidth=0.5)#_forget:import time,threadinglabel2=Label(text='警告!',bg=’blue’)label2.place(relx=0.2,rely=0.2)def run(): start_time=time.time() while True: if time.time()-start_time>3: label2.place_forget() breakt=threading.Thread(target=run)t.setDaemon(True)t.start()root.mainloop()
想要了解更多,可以參考tkinter的官方文檔:http://effbot.org/tkinterbook/
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. Struts2獲取參數(shù)的三種方法總結(jié)2. JSP中Servlet的Request與Response的用法與區(qū)別3. IntelliJ IDEA刪除類(lèi)的方法步驟4. js select支持手動(dòng)輸入功能實(shí)現(xiàn)代碼5. Android 實(shí)現(xiàn)徹底退出自己APP 并殺掉所有相關(guān)的進(jìn)程6. vue cli4下環(huán)境變量和模式示例詳解7. vue使用moment如何將時(shí)間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時(shí)間格式8. Django視圖類(lèi)型總結(jié)9. IntelliJ IDEA導(dǎo)入jar包的方法10. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
