tkinter-布局管理

tkinter 有三种布局管理方式,注意不能混用:
pack
grid
place

发布程序

隐藏

frameobj.pack_forget() to hide
if you use frameobj.pack() to show

frameobj.grid_forget() to show
if you use frameobj.grid() to show

pack

fill 控件填充方式:
fill=X X方向同父窗口一样宽

padding 控件边距
Pack 可以在四个方面控制控件边距: 内边距, 外边距, 水平边距, 垂直边距

padx - 设置水平方向的外边距
pady - 设置竖直方向的外边距
ipadx - 设置水平方向的内边距
ipady - 设置竖直方向的内边距

sticky=’w’ 指定了组件在单元格中靠左对齐

w = Label(root, text="Red Sun", bg="red", fg="white")
w.pack(fill=X,padx=10)

w = Label(root, text="Green Grass", bg="green", fg="black")
w.pack(fill=X,pady=10)

side 顺次放置控件

w = Label(root, text="red", bg="red", fg="white")
w.pack(padx=5, pady=10, side=LEFT)

grid

Grid 在很多场景下是最好用的布局方式. 相比而言, Pack 布局在控制细节方面有些力不从心. Place 布局虽然可以完全控制控件位置, 但这也导致使用 Place 会比其他两种布局方式更加复杂.

Grid 把控件位置作为一个二维表结构来维护, 即按照行列的方式排列控件: 控件位置由其所在的行号和列号决定. 行号相同而列号不同的几个控件会被彼此左右排列; 列号相同而行号不同的几个控件会被彼此上下排列.

place

Place 布局管理可以显式的指定控件的绝对位置或相对于其他控件的位置.