全部的Tkinter組件都包含專用的幾何管理方法,這些方法是用來組織和管理整個父配件區中子配件的佈局的。Tkinter提供了大相徑庭的三種幾何管理類:pack、grid和place。ide
pack()函數
pack幾何管理採用塊的方式組織配件,在快速生成界面設計中普遍採用,若干組件簡單的佈局,採用pack的代碼量最少。pack幾何管理程序根據組件建立生成的順序將組件添加到父組件中去。經過設置相同的錨點(anchor)能夠將一組配件緊挨一個地方放置,若是不指定任何選項,默認在父窗體中自頂向下添加組件。佈局
使用pack()佈局的通用公式爲:WidgetObject.pack(option, …)spa
pack方法提供了下列option選項,選項能夠直接賦值或以字典變量加以修改:設計
名稱code |
描述orm |
取值範圍對象 |
expandip |
當值爲「yes」時,side選項無效。組件顯示在父配件中心位置;若fill選項爲」both」,則填充父組件的剩餘空間。ci |
「yes」, 天然數, 「no」, 0 (默認值爲「no」或0) |
fill |
填充x(y)方向上的空間,當屬性side=」top」或」bottom」時,填充x方向;當屬性side=」left」或」right」時,填充」y」方向;當expand選項爲」yes」時,填充父組件的剩餘空間。 |
「x」, 「y」, 「both」 (默認值爲待選) |
ipadx, ipady |
組件內部在x(y)方向上填充的空間大小,默認單位爲像素,可選單位爲c(釐米)、m(毫米)、 i(英寸)、p(打印機的點,即1/27英寸),用法爲在值後加以上一個後綴既可。 |
非負浮點數 (默認值爲0.0) |
padx, pady |
組件外部在x(y)方向上填充的空間大小,默認單位爲像素,可選單位爲c(釐米)、m(毫米)、 i(英寸)、p(打印機的點,即1/27英寸),用法爲在值後加以上一個後綴既可。 |
非負浮點數 (默認值爲0.0) |
side |
定義停靠在父組件的哪一邊上。 |
「top」, 「bottom」, 「left」, 「right」 (默認爲」top」) |
before |
將本組件於所選組建對象以前pack,相似於先建立本組件再建立選定組件。 |
已經pack後的組件對象 |
after |
將本組件於所選組建對象以後pack,相似於先建立選定組件再本組件。 |
已經pack後的組件對象 |
in_ |
將本組件做爲所選組建對象的子組件,相似於指定本組件的master爲選定組件。 |
已經pack後的組件對象 |
anchor |
對齊方式,左對齊」w」,右對齊」e」,頂對齊」n」, 底對齊」s」 |
「n」, 「s」, 「w」, 「e」, 「nw」, 「sw」, 「se」, 「ne」, 「center」 (默認爲」 center」) |
注:以上選項中能夠看出expand、fill和side是相互影響的。
典型例子:(默認引用爲from Tkinter import *)
單組件填充滿父組件:
text = Text(root, …) text.pack(expand=YES, fill=」both」)
Tkinter模塊提供了一系列大寫值,其等價於字符型小寫值,即Tkinter,YES = = 「yes」。
多組件佈局(從左往右):默認佈局是從上往下。
btn ==LEFT, padx=<chmetcnv unitname= sourcevalue= hasspace= negative= numbertype= tcsc= w:st=></chmetcnv>4c) #x軸左右拓展4釐米 Text(root, …).pack(side=LEFT)
pack類提供了下列函數:
函數名 |
描述 |
slaves() |
以列表方式返回本組件的全部子組件對象。 |
propagate(boolean) |
設置爲True表示父組件的幾何大小由子組件決定(默認值),反之則無關。 |
info() |
返回pack提供的選項所對應得值。 |
forget() |
Unpack組件,將組件隱藏而且忽略原有設置,對象依舊存在,能夠用pack(option, …),將其顯示。 |
location(x, y) |
x, y爲以像素爲單位的點,函數返回此點是否在單元格中,在哪一個單元格中。返回單元格行列座標,(-1, -1)表示不在其中。 |
size() |
返回組件所包含的單元格,揭示組件大小。 |
grid()
grid幾何管理採用相似表格的結構組織配件,使用起來很是靈活,用其設計對話框和帶有滾動條的窗體效果最好。grid採 用行列肯定位置,行列交匯處爲一個單元格。每一列中,列寬由這一列中最寬的單元格肯定。每一行中,行高由這一行中最高的單元格決定。組件並非充滿整個單 元格的,你能夠指定單元格中剩餘空間的使用。你能夠空出這些空間,也能夠在水平或豎直或兩個方向上填滿這些空間。你能夠鏈接若干個單元格爲一個更大空間, 這一操做被稱做跨越。建立的單元格必須相臨。
使用grid()佈局的通用公式爲:WidgetObject.grid(option, …)
grid方法提供了下列option選項,選項能夠直接賦值或以字典變量加以修改:
名稱 |
描述 |
取值範圍 |
column |
組件所置單元格的列號。 |
天然數(起始默認值爲0,然後累加) |
columnspan |
從組件所置單元格算起在列方向上的跨度。 |
天然數(起始默認值爲0) |
ipadx, ipady |
組件內部在x(y)方向上填充的空間大小,默認單位爲像素,可選單位爲c(釐米)、m(毫米)、 i(英寸)、p(打印機的點,即1/27英寸),用法爲在值後加以上一個後綴既可。 |
非負浮點數 (默認值爲0.0) |
padx, pady |
組件外部在x(y)方向上填充的空間大小,默認單位爲像素,可選單位爲c(釐米)、m(毫米)、 i(英寸)、p(打印機的點,即1/27英寸),用法爲在值後加以上一個後綴既可。 |
非負浮點數 (默認值爲0.0) |
row |
組件所置單元格的行號。 |
天然數(起始默認值爲0,然後累加) |
rowspan |
從組件所置單元格算起在行方向上的跨度。 |
天然數(起始默認值爲0) |
in_ |
將本組件做爲所選組建對象的子組件,相似於指定本組件的master爲選定組件。 |
已經pack後的組件對象 |
sticky |
組件緊靠所在單元格的某一邊角。 |
「n」, 「s」, 「w」, 「e」, 「nw」, 「sw」, 「se」, 「ne」, 「center」 (默認爲」 center」) |
典型例子:(默認引用爲from Tkinter import *)
單組件填充滿父組件:
text = Text(root, …) root.rowconfigure(0, weight=1) root.columnconfigure (0, weight=1) #能夠看出,用grid填充不如pack方便。
多組件佈局(滾動條):效果確定是3種佈局方式中最好的。
text = Text(root, …) text.grid()# 縱向sb = Scrollbar(root, …) sb.grid(row=0, column=1, sticky='ns') text.configure(yscrollcommand=sb.set) sb.configure(command=text.yview)# 橫向sb = Scrollbar(root, orient='horizontal', …) sb.grid(row=1, column=0, sticky='ew') text.configure(xscrollcommand=sb.set) sb.configure(command=text.xview)
grid類提供了下列函數:
函數名 |
描述 |
slaves() |
以列表方式返回本組件的全部子組件對象。 |
propagate(boolean) |
設置爲True表示父組件的幾何大小由子組件決定(默認值),反之則無關。 |
info() |
返回pack提供的選項所對應得值。 |
forget() |
Unpack組件,將組件隱藏而且忽略原有設置,對象依舊存在,能夠用pack(option, …),將其顯示。 |
grid_remove () |