Tkinter布局管理器之pack
- GUI 编程就相当于小孩子搭积木,每个积木块应该放在哪里,每个积木块显示为多大,也就是对大小和位置都需要进行管理,而布局管理器正是负责管理各组件的大小和位置的。此外,当用户调整了窗口的大小之后,布局管理器还会自动调整窗口中各组件的大小和位置。
- Tkinter中,有 3 种布局管理器,分别为 pack、grid 和 place。使用 Pack 布局各个组件,当程序向容器中添加组件时,这些组件会依次向后排列,排列方向既可是水平的,也可是垂直的。
pack、grid 和 place 均用于管理同在一个父组件下的所有组件的布局,其中:
- pack 是按添加顺序排列组件
- grid 是按行/列形式排列组件
- place 则允许程序员指定组件的大小和位置
注意:不要在同一个父组件中混合使用 pack 和 grid,因为 Tkinter 会很认真地在那儿计算到底先使用那个布局管理器…以至于你等了半个小时,Tkinter 还在那儿纠结不出结果!
import tkinter as tk
# 创建TK对象,TK代表窗口
root = tk.Tk()
# 设置窗口标题
root.title("pack布局管理器")
for i in range(3):
lab = tk.Label(root, text="第%d个Label" % (i + 1), bg='#eeeeee')
# 调用pack进行布局
lab.pack()
# 启动主窗口的消息循环
root.mainloop()
import tkinter as tk
root = tk.Tk()
tk.Label(root, text="Red", bg="red", fg="white").pack(fill="x")
tk.Label(root, text="Green", bg="green", fg="black").pack(fill="x")
tk.Label(root, text="Blue", bg="blue", fg="white").pack(fill="x")
root.mainloop()
packd的方法
pack(**options)
pack_configure(**options)
- 跟 pack() 一样
pack_forget()
- 将组件从屏幕中“删除”
- 并没有销毁该组件,只是看不到了
- 可以通过 pack 或其他布局管理器显示已“删除”的组件
pack_info()
- 以字典的形式返回当前 pack 的选项
pack_propagate(flag)
- 如果开启,父组件会自动调节尺寸以容纳所有子组件
- 默认值是开启(flag = True)
- 该方法仅适用于父组件
pack_slaves()
- 以列表的形式返回该组件的所有子组件