絕對佈局
- 窗口的大小變化對控件位置沒有影響
- 代碼內容
import tkinter
# 創建主窗口
win = tkinter.Tk()
# 設置標題
win.title('絕對佈局')
# 設置大小和位置,前兩個x大小 後兩個+位置
win.geometry('400x400+500+200')
label1 = tkinter.Label(win,text='first',bg='red')
label2 = tkinter.Label(win,text='second',bg='yellow')
label3 = tkinter.Label(win,text='第三個',bg='blue')
# 絕對佈局 窗口的變化對位置沒有影響
label1.place(x=10,y=10)
label2.place(x=50,y=50)
label3.place(x=100,y=100)
# 進入消息循環
win.mainloop()
- 代碼示例圖
- 代碼解析
- 設置了三個 Label 標籤
- 使用 place 方法放在了固定的位置
相對佈局
- 控件位置會根據窗口的變化而變化
- 代碼內容
import tkinter
# 創建主窗口
win = tkinter.Tk()
# 設置標題
win.title('絕對佈局')
# 設置大小和位置,前兩個x大小 後兩個+位置
win.geometry('400x400+500+200')
label1 = tkinter.Label(win,text='first',bg='red')
label2 = tkinter.Label(win,text='second',bg='yellow')
label3 = tkinter.Label(win,text='第三個',bg='blue')
# 相對佈局 根據窗口的變化而變化
label1.pack(fill=tkinter.Y,side=tkinter.LEFT)
label2.pack(fill=tkinter.X,side=tkinter.TOP)
label3.pack(fill=tkinter.Y,side=tkinter.RIGHT)
# 進入消息循環
win.mainloop()
- 代碼示例圖
- 代碼解析
- 設置三個 Label 控件
- 第一個縱向填充( Y ),並且放在窗口的左側
- 第二個橫向填充( X ),並且放在窗口的頂端
- 第三個縱向填充( Y ),並且放在窗口的右側
表格佈局
- 在窗口中分行分列顯示
- 代碼內容
import tkinter
# 創建主窗口
win = tkinter.Tk()
# 設置標題
win.title('絕對佈局')
# 設置大小和位置,前兩個x大小 後兩個+位置
win.geometry('400x400+500+200')
label1 = tkinter.Label(win,text='first',bg='red')
label2 = tkinter.Label(win,text='second',bg='yellow')
label3 = tkinter.Label(win,text='第三個',bg='blue')
label4 = tkinter.Label(win,text='第4個',bg='purple')
label1.grid(row=0,column=0)
label2.grid(row=0,column=1)
label3.grid(row=1,column=0)
label4.grid(row=1,column=1)
# 進入消息循環
win.mainloop()
- 代碼示例圖
- 代碼解析
- 設置 4 個 Label 標籤
- 第一個 Label 放置在 0 行 0 列
- 第二個 Label 放置在 0 行 1 列
- 第三個 Label 放置在 1 行 0 列
- 第四個 Label 放置在 1 行 1 列