視窗控件配置管理員 Widget Layout
Manager
(Tkinter布局管理器)
Tkinter 提供了三種常用的佈局管理器,分別是 pack()、grid() 以及 place(),如下表所示:
方法 |
說明 |
pack() |
按照控制項的添加順序其進行排列,遺憾的是此方法靈活性較差 |
grid() |
以行和列(網格)形式對控制項進行排列,此種方法使用起來較為靈活 |
place() |
可以指定元件大小以及擺放位置,三個方法中最為靈活的佈局方法 |
pack()
pack() 是一種較為簡單的佈局方法,在不使用任何參數的情況下,它會將控制項以添加時的先後順序,自上而下,一行一行的進行排列,並且預設居中顯示。pack() 方法的常用參數如下所示:
屬性 |
說明 |
anchor |
元件在視窗中的對齊方式,有 9 個方位參數值,比如"n"/"w"/"s"/"e"/"ne",以及 "center" 等(這裡的 e w s n分別代表,東西南北) |
expand |
是否可擴展視窗,參數值為 True(擴展)或者 False(不擴展),默認為 False,若設置為 True,則控制項的位置始終位於視窗的中央位置 |
fill |
參數值為 X/Y/BOTH/NONE,表示允許控制項在水準/垂直/同時在兩個方向上進行拉伸,比如當 fill = X 時,控制項會占滿水準方向上的所有剩餘的空間。 |
ipadx,ipady |
需要與 fill 參數值共同使用,表示元件與內容和元件邊框的距離(內邊距),比如文本內容和元件邊框的距離,單位為圖元(p),或者釐米(c)、英寸(i) |
padx,pady |
用於控制元件之間的上下、左右的距離(外邊距),單位為圖元(p),或者釐米(c)、英寸(i) |
side |
元件放置在視窗的哪個位置上,參數值 'top','bottom','left','right'。注意,單詞小寫時需要使用字串格式,若為大寫單詞則不必使用字串格式 |
grid() 函數的常用參數如下所示:
grid() 函數是一種基於網格式的佈局管理方法,相當於把視窗看成了一張由行和列組成的表格。當使用該 grid 函數進行佈局的時,表格內的每個儲存格都可以放置一個控制項。,從而實現對介面的佈局管理。
注意:這裡的所說的“表格”是虛擬出來,目的是便於大家理解,其實表單並不會因為使用了 gird() 函數,而增加一個表格。
屬性 |
說明 |
column |
控制項位於表格中的第幾列,表單最左邊的為起始列,默認為第 0 列 |
columnsapn |
控制項實例所跨的列數,默認為 1 列,通過該參數可以合併一行中多個領近儲存格。 |
ipadx,ipady |
用於控制內邊距,在儲存格內部,左右、上下方向上填充指定大小的空間。 |
padx,pady |
用於控制外邊距,在單元格外部,左右、上下方向上填充指定大小的空間。 |
row |
控制項位於表格中的第幾行,表單最上面為起始行,默認為第 0 行 |
rowspan |
控制項實例所跨的行數,默認為 1 行,通過該參數可以合併一列中多個領近儲存格。 |
sticky |
該屬性用來設置控制項位於儲存格那個方位上,參數值和 anchor 相同,若不設置該參數則控制項在儲存格內居中 |
place()
與前兩種佈局方法相比,採用 place() 方法進行佈局管理要更加精細化,通過 place() 佈局管理器可以直接指定控制項在表單內的絕對位置,或者相對於其他控制項定位的相對位置。
下面對 place 佈局管理器的常用屬性做相關介紹:
屬性 |
說明 |
anchor |
定義控制項在表單內的方位,參數值N/NE/E/SE/S/SW/W/NW 或 CENTER,預設值是 NW |
bordermode |
定義控制項的座標是否要考慮邊界的寬度,參數值為 OUTSIDE(排除邊界) 或 INSIDE(包含邊界),預設值 INSIDE。 |
x、y |
定義控制項在根表單中水準和垂直方向上的起始絕對位置 |
relx、rely |
1.
定義控制項相對於根視窗(或其他控制項)在水準和垂直方向上的相對位置(即位移比例),取值範圍再 0.0~1.0 之間 |
height、width |
控制項自身的高度和寬度(單位為圖元) |
relheight、relwidth |
控制項高度和寬度相對於根表單高度和寬度的比例,取值也在 0.0~1.0 之間 |
沒有留言:
張貼留言