绝对布局
- 窗口的大小变化对控件位置没有影响
- 代码内容
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 列