Python GUI (Tkinter) 位置佈局
pack() 佈局
視窗自動排列。這是最常用的方法,雖然可以讓也可以指定座標。
fill
區塊填滿功能,通常會配合x、y
軸向或全部both
。side
選擇對齊左或右邊。padx
、pady
與前端的padding
一樣,增加內部範圍。expand
填滿位置功能,參數1時會佔據全視窗中間位置。
py
a.pack()
b.pack(fill='x',padx=20)
c.pack(fill='y',side='left')
d.pack(fill='both',expand=1)
f.pack(pady=10)
g.pack(ipady=10)
grid() 佈局
格線座標排列。下方有幾個參數可定義位置。
column
、row
橫向縱向。columnspan
、rowspan
橫、縱向間格距離。padx
、pady
橫、縱向間格座標。ipadx
、ipady
與前端的padding
一樣,增加內部範圍。
py
a.grid(column=0, row=0)
b.grid(column=1, row=1, columnspan=1, rowspan=1)
c.grid(column=2, row=2, ipadx=20, ipady=20)
d.grid(column=3, row=3, padx=20, pady=20)
place() 佈局
絕對座標排列。要求精準位置及特殊排列使用,通常不建議,因為在放大縮小視窗時很容易位置跑掉。
x
、y
軸向座標。relx
、rely
比例座標。
py
a.place(x=0, y=0)
b.place(relx=0.5, rely=0.5)
TIP
三種方式無法混用,以前端排版的角度來看建議還是以 pack 或 grid 為優先。