没有使用fill和expand时,代码为:
from tkinter import *
window = Tk()
window.title('fill and expand')
lab1 = Label(window, text='one', bg='lightyellow', width=20)
lab2 = Label(window, text='two', bg='lightgreen', width=20)
lab3 = Label(window, text='three', bg='lightblue', width=20)
lab1.pack(side=LEFT)
lab2.pack(side=TOP)
lab3.pack(side=TOP)
window.mainloop()
其结果为:
若改为:
lab1.pack(side=LEFT, fill=Y)
lab2.pack(side=TOP)
lab3.pack(side=TOP)
则结果为:
将窗口放大后:
改为:
lab1.pack(side=LEFT, fill=Y)
lab2.pack(side=TOP, fill=X)
lab3.pack(side=TOP, fill=X)
放大结果为:
代码改为:
lab1.pack(side=LEFT, fill=Y)
lab2.pack(side=TOP, fill=BOTH)
lab3.pack(side=TOP, fill=BOTH)
放大结果为;
为什么还是一样呢?因为side=TOP,配件是从上往下排列,pack配置管理员所配置的空间是X轴的空间。
如果想要把空白填满怎么办?可以使用expand
代码改为:
lab1.pack(side=LEFT, fill=Y)
lab2.pack(side=TOP, fill=BOTH)
lab3.pack(side=TOP, fill=BOTH, expand=True)
则放大结果为:
若改为;
lab1.pack(side=LEFT, fill=Y)
lab2.pack(side=TOP, fill=BOTH, expand=True)
lab3.pack(side=TOP, fill=BOTH, expand=True)
则放大结果为: