佈局幾何管理器分為三大類
- pack 按方位擺放部件, 大致擺放
- grid 按表格方式擺放部件, 分格擺放
- place 按座標位置擺放部件, 精確擺放
注: 同一容器, pack 和 grid 不可混用, 會引起 TclError 異常, place 可以混用.
pack 幾何管理器
- 部件按順序塞入容器中, 先放入的部件先靠到邊緣, 內定為上方邊緣, 直到放完後, 再計算容器的大小. 適合按順序擺放的佈局, 或要填滿容器,最常用的選項如下
選項 | 說明 | 預設值 | 可用值 |
---|---|---|---|
after | 封裝在該已封裝的部件後 | ||
anchor | 定位方式 | CENTER | NW/N/NE/E/SE/S/SW/W/CENTER |
before | 封裝在該已封裝的部件前 | ||
expand | 視窗尺寸變化時, 是否延伸部件 | 0 | YES/NO, True/False, 1/0 |
fill | 部件放入容器後, 部件尺寸可延伸的方向 | NONE | X/Y/BOTH/NONE |
ipadx | 內部間隔 | 0 | 正整數 |
ipady | 內部間隔 | 0 | 正整數 |
padx | 外部間隔 | 0 | 正整數 |
pady | 外部間隔 | 0 | 正整數 |
side | 部件放入容器後, 往哪個方向靠 | TOP | LEFT/TOP/RIGHT/BOTTOM |
in_ | 父容器部件 |
- 例項說明
例項 | 說明 |
---|---|
pack() | 最小佔用空間 |
pack(side=LEFT, fill=Y) | 放到左邊, Y 方向延伸到最大位置 |
pack(side=TOP, fill=X) | 放到上方, X 方向延伸到最大位置 |
pack(side=RIGHT, fill=NONE) | 放到右邊, 不延伸 |
pack(side=TOP, fill=BOTH) | 放到上面, X 及 Y 方向延伸到最大位置 |
pack(expand = 1) | 放到上方, 容器尺寸變化時, 該部件尺寸不變, 但容器延伸 |
pack(fill=X, expand=1) | 放到上方, X 方向延伸, 容器尺寸變化時, 該部件 X 方向也延伸 |
- pack 相關方法
方法 | 說明 |
---|---|
pack_configure() | 同 pack() |
pack_forget() | 隱藏部件,但其原有的 pack 選項會全部失去,pack() 會再度顯示部件 |
pack_info() | 返回部件 pack 選項及其值的字典 |
pack_propagate(flag) | 是否部件的大小會被子部件所決定, 內定為 True, 如果沒有引數, 返回設定值 |
pack_slaves() | 返回部件按封裝順序的子部件列表 |
grid 幾何管理器
- 表格方式的佈局是最容易清楚如何地佈局, 也最容易佈局. 2D 表格分為兩個引數, 垂直方向的列row 與水平方向的行column, 兩個引數構成一格, 每一格最多隻能放進一個部件, 一個部件也可放進四方形的多個格子. 格子的高度/寛度由該行/列最高/寛的部件決定. 選項有
選項 | 說明 |
---|---|
column row |
每一格的代表方式由行column 及列row 來表示, 都是由 0 開始算起. |
columnspan rowcolumn |
佔有多少格則由行數columnspan 及列數rowspan 來表示, (2, 2) 代表部件佔用 4 格. |
ipadx ipady |
部件內部水平及垂直方向的間隔 |
padx pady |
部件外部水平及垂直方向的間隔 |
sticky | 每一格的寛度由該列的最大寛度決定, 高度則由行的最大高度決定. 因此格子很可能比部件還大, 所以部件在格子中的位置, 由 sticky 決定1. 內定為置中 CENTER 2. 靠在邊上的正中, N (上), S (下), E (右), W (左) .3. 靠在角落上, NE (右上角), NW (左上角), SE (右下角), SW (左下角).4 . 拉長, NS (垂直), EW (水平), NSEW (全部延伸).5. 其他, 可以是 N , E , S 及W 的組合(加+ 在一起) |
in_ | 設定新的父部件in_ , 該部件必須是本部件建立時的父部件的子部件. |
- grid 相關方法
方法 | 說明 |
---|---|
w.grid_anchor(anchor=None) | 如果沒有任何的 row/column 有權重, 設定如何定位 grid, 內定為 nw |
w.grid_bbox(column=None, row=None, col2=None, row2=None) | 格子cloumn 到col2 (含), row code>到 |
w.grid_columnconfigure(N, option=value, …) | 設定 column N 選項, 選項如 3 中所示 |
w.grid_configure | 同 grid() |
w.grid_forget() | 隱藏部件, 但其原有的grid 選項會全部失去, grid() 會再度顯示部件 |
w.grid_info() | 部件grid 選項及其值的字典 |
w.grid_location(x, y) | 座標點 (x, y) 位置的格子 (col, row) |
w.grid_propagate() | 延伸部件的大小, 內建為 1, 0 則不延伸 |
w.grid_remove() | 隱藏部件, 但其原有的grid 選項仍會保留, grid() 會再度顯示部件 |
w.grid_rowconfigure(N, option=value, …) | 設定 row N 選項, 選項如 3 中所示 |
w.grid_size() | 返回部件的水平及垂直的格子數 (columnspan, rowspan) |
w.grid_slaves(row=None, column=None) | 返回在某格子 (row, column) 中的部件列表, None 表示無部件 |
- 視窗尺寸變化時, 部件的尺寸變化由父部份的表格設定而定.
方法 | 說明 |
---|---|
w.columnconfigure(N, option=value, …) | 設定 column N 選項 |
w.rowconfigure(N, option=value, …) | 設定 row N 選項 |
選項如下所示
選項 | 說明 |
---|---|
minsize | 點素的最小尺寸, 在沒有部件時, 仍然會不顯示. |
pad | 對最大的格子提供額外的間距 |
weight | 延伸格子更多的空間, 單位為 1/4 尺寸 |
注: 要能在視窗尺寸變化時延伸部件, 必須在父部件中, 以 columnconfigure
及 rowconfigure
設定 weight
選項, 在部件中也必須在 grid
方法中設定 sticky
可延伸.
place 幾何管理器
- place 幾何管理器是最少被使用的一種管理器, 但它是最精準的一種, 依靠的是座標系統.
選項 | 說明 |
---|---|
anchor | 部件定位方向 |
bordermode | 是否考慮父部件外框寛度, “inside” 或 “outside” |
height | 部件高度點素 |
width | 部件寛度點素 |
relwidth | 部件寛度相對父部件比例 0.0 ~ 1.0 |
relheight | 部件高度相對父部件比例 0.0 ~ 1.0 |
x | 部件定位 x 座標 |
y | 部件定位 y 座標 |
relx | 部件定位 x 座標, 相對父部件的比率 0.0 ~ 1.0, 1.0 右端 |
rely | 部件定位 y 座標, 相對父部件的比率 0.0 ~ 1.0, 1.0 下端 |
in_ | 父容器部件 |
- place 相關方法
方法 | 說明 |
---|---|
place_configure() | 同 place() |
place_forget () | 隱藏部件,但其原有的 place 選項會全部失去,place() 會再度顯示部件 |
place_info() | 返回部件 place 選項及其值的字典 |
place_slaves() | 返回部件按封裝順序的子部件列表 |
待續
本作品採用《CC 協議》,轉載必須註明作者和本文連結