Skip to content
On this page

Python GUI (Tkinter) 位置佈局

pack() 佈局

pack 視窗自動排列。這是最常用的方法,雖然可以讓也可以指定座標。

  • fill區塊填滿功能,通常會配合 x、y 軸向或全部 both
  • side選擇對齊左或右邊。
  • padxpady 與前端的 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() 佈局

grid 格線座標排列。下方有幾個參數可定義位置。

  • columnrow 橫向縱向。
  • columnspanrowspan 橫、縱向間格距離。
  • padxpady 橫、縱向間格座標。
  • ipadxipady 與前端的 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() 佈局

place 絕對座標排列。要求精準位置及特殊排列使用,通常不建議,因為在放大縮小視窗時很容易位置跑掉。

  • xy 軸向座標。
  • relxrely比例座標。
py
a.place(x=0, y=0)
b.place(relx=0.5, rely=0.5)

TIP

三種方式無法混用,以前端排版的角度來看建議還是以 pack 或 grid 為優先。