




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第PythonGUI之tkinter布局管理教程目錄pack常用屬性pack類提供了下列函數(shù)(使用組件實(shí)例對(duì)象調(diào)用)grid屬性設(shè)置grid類提供了下列函數(shù)(使用組件實(shí)例對(duì)象調(diào)用)place屬性設(shè)置place類提供了下列函數(shù)(使用組件實(shí)例對(duì)象調(diào)用)所謂布局,就是指控制窗體容器中各個(gè)控件(組件)的位置關(guān)系。
tkinter共有三種幾何布局管理器,分別是:
pack布局grid布局place布局
pack布局
使用pack布局,將向容器中添加組件,第一個(gè)添加的組件在最上方,然后是依次向下添加。
fromtkinterimport*
root=Tk()
#創(chuàng)建三個(gè)Label分別添加到root窗體中
#Label是一種用來顯示文字或者圖片的組件
Label(root,text='pack1',bg='red').pack()
Label(root,text='pack2',bg='blue').pack()
Label(root,text='pack3',bg='green').pack()
root.mainloop()
如圖:
pack常用屬性
屬性名屬性簡(jiǎn)析取值取值說明fill設(shè)置組件是否向水平或垂直方向填充X、Y、BOTH和NONEfill=X(水平方向填充)fill=Y(垂直方向填充)fill=BOTH(水平和垂直)NONE不填充expand設(shè)置組件是否展開,當(dāng)值為YES時(shí),side選項(xiàng)無效。組件顯示在父容器中心位置;若fill選項(xiàng)為BOTH,則填充父組件的剩余空間。默認(rèn)為不展開YES、NO(1、0)expand=YESexpand=NOside設(shè)置組件的對(duì)齊方式LEFT、TOP、RIGHT、BOTTOM值為左、上、右、下ipadx、ipady設(shè)置x方向(或者y方向)內(nèi)部間隙(子組件之間的間隔)可設(shè)置數(shù)值,默認(rèn)是0非負(fù)整數(shù),單位為像素padx、pady設(shè)置x方向(或者y方向)外部間隙(與之并列的組件之間的間隔)可設(shè)置數(shù)值,默認(rèn)是0非負(fù)整數(shù),單位為像素anchor錨選項(xiàng),當(dāng)可用空間大于所需求的尺寸時(shí),決定組件被放置于容器的何處N、E、S、W、NW、NE、SW、SE、CENTER(默認(rèn)值為CENTER)表示八個(gè)方向以及中心
注意:上表中取值都是常量,YES等價(jià)于yes,亦可以直接傳入字符串值。另外當(dāng)界面復(fù)雜度增加時(shí),要實(shí)現(xiàn)某種布局效果,需要分層來實(shí)現(xiàn)。
fromtkinterimport*#注意模塊導(dǎo)入方式,否則代碼會(huì)有差別
classApp:
def__init__(self,master):
#使用Frame增加一層容器
fm1=Frame(master)
#Button是一種按鈕組件,與Label類似,只是多出了響應(yīng)點(diǎn)擊的功能
Button(fm1,text='Top').pack(side=TOP,anchor=W,fill=X,expand=YES)
Button(fm1,text='Center').pack(side=TOP,anchor=W,fill=X,expand=YES)
Button(fm1,text='Bottom').pack(side=TOP,anchor=W,fill=X,expand=YES)
fm1.pack(side=LEFT,fill=BOTH,expand=YES)
fm2=Frame(master)
Button(fm2,text='Left').pack(side=LEFT)
Button(fm2,text='ThisistheCenterbutton').pack(side=LEFT)
Button(fm2,text='Right').pack(side=LEFT)
fm2.pack(side=LEFT,padx=10)
root=Tk()
root.title("Pack-Example")
display=App(root)
root.mainloop()
如上,創(chuàng)建一個(gè)Frame容器fm1,將三個(gè)垂直排列的Button組件使用pack布局放入fm1容器中,然后創(chuàng)建fm2容器,同樣將三個(gè)水平排列的Button組件放入,最后將兩個(gè)Frame容器當(dāng)做組件,使用pack布局放入根窗體容器中。
如此分層布局,實(shí)現(xiàn)了相對(duì)復(fù)雜一些的界面需求。
pack類提供了下列函數(shù)(使用組件實(shí)例對(duì)象調(diào)用)
函數(shù)名描述pack_slaves()以列表方式返回本組件的所有子組件對(duì)象。pack_configure(option=value)給pack布局管理器設(shè)置屬性,使用屬性(option)=取值(value)方式設(shè)置propagate(boolean)設(shè)置為True表示父組件的幾何大小由子組件決定(默認(rèn)值),反之則無關(guān)。pack_info()返回pack提供的選項(xiàng)所對(duì)應(yīng)得值。pack_forget()Unpack組件,將組件隱藏并且忽略原有設(shè)置,對(duì)象依舊存在,可以用pack(option,),將其顯示。location(x,y)x,y為以像素為單位的點(diǎn),函數(shù)返回此點(diǎn)是否在單元格中,在哪個(gè)單元格中。返回單元格行列坐標(biāo),(-1,-1)表示不在其中size()返回組件所包含的單元格,揭示組件大小。
grid布局
grid布局又被稱作網(wǎng)格布局,是最被推薦使用的布局。程序大多數(shù)都是矩形的界面,我們可以很容易把它劃分為一個(gè)幾行幾列的網(wǎng)格,然后根據(jù)行號(hào)和列號(hào),將組件放置于網(wǎng)格之中。使用grid布局時(shí),需要在里面指定兩個(gè)參數(shù),分別用row表示行,column表示列。需要注意的是row和column的序號(hào)都從0開始。
如下圖,假設(shè)將界面分成網(wǎng)格。
grid屬性設(shè)置
屬性名屬性簡(jiǎn)析取值取值說明row、columnrow為行號(hào),column為列號(hào),設(shè)置將組件放置于第幾行第幾列取值為行、列的序號(hào),不是行數(shù)與列數(shù)row和column的序號(hào)從0開始,但是,column的默認(rèn)值是0,row的默認(rèn)值是下一個(gè)編號(hào)較大的未占用行號(hào)sticky設(shè)置組件在網(wǎng)格中的對(duì)齊方式(前提是有額外的空間)N、E、S、W、NW、NE、SW、SE類似于pack布局中的錨選項(xiàng)rowspan組件所跨越的行數(shù)默認(rèn)值為1取值為跨越占用的行數(shù),而不是序號(hào)columnspan組件所跨越的列數(shù)默認(rèn)值為1取值為跨越占用的列數(shù),而不是序號(hào)ipadx、ipady、padx、pady組件的內(nèi)部、外部間隔距離,與pack的該屬性用法相同同pack同pack
grid類提供了下列函數(shù)(使用組件實(shí)例對(duì)象調(diào)用)
函數(shù)名描述grid_slaves()以列表方式返回本組件的所有子組件對(duì)象。grid_configure(option=value)給pack布局管理器設(shè)置屬性,使用屬性(option)=取值(value)方式設(shè)置grid_propagate(boolean)設(shè)置為True表示父組件的幾何大小由子組件決定(默認(rèn)值),反之則無關(guān)。grid_info()返回pack提供的選項(xiàng)所對(duì)應(yīng)得值。grid_forget()Unpack組件,將組件隱藏并且忽略原有設(shè)置,對(duì)象依舊存在,可以用pack(option,),將其顯示。grid_location(x,y)x,y為以像素為單位的點(diǎn),函數(shù)返回此點(diǎn)是否在單元格中,在哪個(gè)單元格中。返回單元格行列坐標(biāo),(-1,-1)表示不在其中size()返回組件所包含的單元格,揭示組件大小。
place布局。
最簡(jiǎn)單最靈活的一種布局,使用組件坐標(biāo)來放置組件的位置。但是不太推薦使用,在不同分辨率下,界面往往有較大差異。
place屬性設(shè)置
屬性名屬性簡(jiǎn)析取值取值說明anchor錨選項(xiàng),同pack布局默認(rèn)值為NW同pack布局x、y組件左上角的x、y坐標(biāo)整數(shù),默認(rèn)值0絕對(duì)位置坐標(biāo),單位像素relx、rely組件相對(duì)于父容器的x、y坐標(biāo)0~1之間浮點(diǎn)數(shù)相對(duì)位置,0.0表示左邊緣(或上邊緣),1.0表示右邊緣(或下邊緣)width、height組件的寬度、高度非負(fù)整數(shù)單位像素relwidth、relheight組件相對(duì)于父容器的寬度、高度0~1之間浮點(diǎn)數(shù)與relx(rely)取值相似
bordermode如果設(shè)置為INSIDE,組件內(nèi)部的大小和位置是相對(duì)的,不包括邊框;如果是OUTSIDE,組件的外部大小是相對(duì)的,包括邊框INSIDE、OUTSIDE(默認(rèn)值INSIDE)可以使用常量INSIDE、OUTSIDE,也可以使用字符串形式inside、outside
place類提供了下列函數(shù)(使用組件實(shí)例對(duì)象調(diào)用)
函數(shù)名描述place_slaves()以列表方式返回本組件的所有子組件對(duì)象。place_configure(option=value)給pack布局管理器設(shè)置屬性,使用屬性(option)=取值(value)方式設(shè)置propagate(boolean)設(shè)置為True表示父組件的幾何大小由子組件決定(默認(rèn)值),反之則無關(guān)。place_info()返回pack提供
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 審計(jì)過程中的人力資源管理考核試卷
- 種子批發(fā)商企業(yè)社會(huì)責(zé)任報(bào)告與實(shí)施考核試卷
- 安全門禁售后運(yùn)維
- 七年級(jí)下冊(cè)教學(xué)設(shè)計(jì)與指導(dǎo)
- 畜牧獸醫(yī)疫苗研究與開發(fā)考核試卷
- 初中剪紙藝術(shù)課程教案設(shè)計(jì)
- 一流的管理者:3不管、4不說、5不幫的管理智慧
- 2024-2030全球水飛薊素原料藥行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年公用設(shè)備工程師之專業(yè)案例(暖通空調(diào)專業(yè))強(qiáng)化訓(xùn)練試卷B卷附答案
- 幼兒教育個(gè)人簡(jiǎn)歷
- 防食物中毒和預(yù)防的主題班會(huì)
- 弘揚(yáng)與傳承中華傳統(tǒng)文化課件(共16張PPT)
- 《中醫(yī)護(hù)理學(xué)》第三章課件
- 泵站畢業(yè)設(shè)計(jì)
- 行政事業(yè)單位合同業(yè)務(wù)控制流程圖
- 孔子練精神聰明不忘開心方_醫(yī)心方卷二十六引_金匱錄_方劑加減變化匯總
- 板房區(qū)臨建設(shè)施技術(shù)標(biāo)
- 美國(guó)AAMIST79最新修訂條款解讀----史紹毅[1]
- 危險(xiǎn)性較大的分部分項(xiàng)工程清單及安全管理措施
- 理事會(huì)會(huì)議決議范文
- 通用汽車精益生產(chǎn)培訓(xùn)資料
評(píng)論
0/150
提交評(píng)論