pack()方法是比较常用的布局组件之一:其语法如下:
widget.pack(options)
其常用的参数及含义如下:
参数 | 含义 |
side | 设置组件水平展示或垂直展示 |
padx | 设置组件距离窗口的水平距离 |
pady | 设置组件距离窗口的垂直距离 |
ipadx | 设置组件内的文字距离组件边界的水平距离 |
ipady | 设置组件内的文字距离组件边界的垂直距离 |
fill | 设置组件填充所在的空白空间的方式 |
expand | 设置组件是否完全填充其余空间 |
anchor | 设置组件在窗口的位置 |
before | 设置该组件应该位于指定组件的前面 |
after | 设置该组件应该位于指定组件的后面 |
设置窗口中的三行文字,从左向右依次排列:
from tkinter import *
win=Tk()
#标题
win.title('窗口')
#窗口大小
win.geometry('200x200')
txt1='111'
txt2='222'
txt3='333'
Label(win,text=txt1,bg='#F5DFCC').pack(side='left')
Label(win,text=txt2,bg='#EDB584').pack(side='left')
Label(win,text=txt3,bg='#EF994C').pack(side='left')
win.mainloop()
而如果将side='left'改为side='bottom',则运行效果:
Label(win,text=txt1,bg='#F5DFCC').pack(side='bottom')
Label(win,text=txt2,bg='#EDB584').pack(side='bottom')
Label(win,text=txt3,bg='#EF994C').pack(side='bottom')
如果增加padx、pady参数,就可以设置组件边界距离窗口边界的距离,单位为px:
txt1='1111111111'
txt2='222'
txt3='333'
Label(win,text=txt1,bg='#F5DFCC',width=30).pack(side='bottom',padx=20,pady=5)
Label(win,text=txt2,bg='#EDB584',width=30).pack(side='bottom',padx=20,pady=5)
Label(win,text=txt3,bg='#EF994C',width=30).pack(side='bottom',padx=20,pady=5)
仿制一个“是否确认退出”窗口:
from tkinter import *
win=Tk()
#标题
win.title('确认退出?')
win.geometry('350x150')
t1='确定退出本窗口吗?'
t2='我再想想'
t3='确认退出'
txt1=Label(win,text=t1)
txt2=Label(win,text=t2,bg='blue')
txt3=Label(win,text=t3,bg='red')
txt1.pack(fill='x',pady='20')
txt2.pack(side='right',padx='10',ipadx='6',pady='20',anchor='se')
txt3.pack(side='right',padx='10',ipadx='6',pady='20',anchor='se')
win.mainloop()