Tkinter的一些控件,如Label、Button等在窗口或其他容器中的布局、放置有3种方法:pack()、grid()、place()。
本篇先讲pack()方法,重点介绍pack()的下列参数用法。
side
anchor
padx/pady
ipadx/ipady
fill
expand
1 简单装
初步了解pack()包装控件。
下面P8-G2-Pack-1.py中,在顶层窗口root中创建了3个Label(标签),使用pack()布局控件。
!!!程序第3、4行为对控件的参数定义,可以直接改第3、4行的参数值,避免到下面程序中改,这样便于改参数,运行程序,对比结果。
上图pack()中没有任何参数,3个标签按照默认居中自上向下排列,程序运行结果如下图所示。
2 定方向
使用pack()的side参数定义控件排列方向。
下面P9-G2-Pack-2.py中,第5行定义了3个参数,用于定义3个标签控件的排列方向,对应18、19、20行。
!!!改第5行参数,运行程序,可对比不同排列效果。
3 抛锚了
使用pack()的anchor参数定义控件位置。
下面P10-G2-Pack-3.py中,第6行定义了anchor_k参数,在19、20、21行用到。注意anchor参数值:大写格式、小写带引号格式(推荐)。
!!!改第5、6行参数,运行程序,可对比不同排列、布局效果。
注意:下面图中side_k、anchor_k的值。
4 挑拨离间
使用pack()的padx/pady参数定义控件外边距,使用ipadx/ipady定义控件内边距。
下面P11-G2-Pack-4.py中,第6行定义了4个参数,用于定义控件内外边距,在18、19、20行用到。
!!!改第6行参数,运行程序,可对比不同内外边距效果。也可改第5行参数,组合对比。
5 开疆扩土
使用pack()的fill、expand参数定义控件在窗口或容器内的填充方式、随窗口尺寸变化。
下面P12-G2-Pack-5.py中,第7、8行为3个控件各定义了fill、expand参数,在20、21、22行用到。
!!!改第7、8行参数,运行程序,可对比不同填充方式、随窗口变化效果。
运行程序,拖动窗口边,改变窗口大小,观察标签控件变化。
6 小结
纸上得来终觉浅,绝知此事要躬行。
参数组合,不计其数,知其所以然,以取所需。