Tkinter10_布局管理器
标签(空格分隔): Tkinter
文章目录
Tkinter 有三个布局管理器,分别是 pack、grid 和 place,其中:
- pack 是按添加顺序排列组件。
- grid 是按行/列形式排列组件。
- place 允许程序员指定组件的大小和位置。
pack
对比 grid 管理器,pack 更适用于少量组件的排列,但它在使用上更简单。如果需要创建相对复杂的布局结构,那么建议是使用多个框架(Frame)结构,或者使用 grid 管理器实现。
tips:不要在同一个父组件中混合使用 pack 和 grid,因为 Tkinter 会计算到底先用哪个布局管理器。
例 50
将一个组件放到一个容器组件中,并填充整个父组件。下面生成一个 Listbox 组件并将它填充到 root 窗口中:
from tkinter import *
root = Tk()
listbox = Listbox(root)
listbox.pack(fill = BOTH, expand = True)
# fill 告诉窗口管理器该组件将填充整个分配给它的空间
# BOTH 表示同时横向和纵向扩展,X 表示横向,Y 表示纵向
# expoand 选项告诉窗口管理器将父组件的额外空间也填满
for i in range(10):
listbox.insert(END, str(i))
mainloop()
默认情况下,pack 是将添加的组件依次纵向排列:
from tkinter import *
root = Tk()
Label(root, text="red", bg="red", fg="white").pack(fill=X)
Label(root, text="green", bg="green", fg="black").pack(fill=X)