【 tkinter 模块 12 】 布局

绝对布局

  •  窗口的大小变化对控件位置没有影响
  •  代码内容
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()
  •  代码示例图

  • 代码解析
  1.  设置了三个 Label 标签
  2. 使用 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()
  • 代码示例图

扫描二维码关注公众号,回复: 10623622 查看本文章
  • 代码解析
  1. 设置三个 Label 控件
  2. 第一个纵向填充( Y ),并且放在窗口的左侧
  3. 第二个横向填充( X ),并且放在窗口的顶端
  4. 第三个纵向填充( 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()
  • 代码示例图

  • 代码解析
  1. 设置 4 个 Label 标签
  2. 第一个 Label 放置在 0 行 0 列
  3. 第二个 Label 放置在 0 行 1 列
  4. 第三个 Label 放置在 1 行 0 列
  5. 第四个 Label 放置在 1 行 1 列
发布了96 篇原创文章 · 获赞 103 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_38114487/article/details/104508250
今日推荐