对于Tkinter控件的布局,grid()方法比较简单,控件布局整齐,可以跟Excel的表格对比,理解grid()方法。Grid()方法将控件布置在虚拟的表格里,每个控件占一个或几个单元格,就像Excel中的单个单元格或几个单元格合并成一个单元格。
本篇所讲的grid()方法,主要包含以下参数的应用:
row/column
rowspan/columnspan
padx/pady
ipadx/ipady
Sticky
rowconfigure/columnconfigure
1 定格
初步了解grid()定位控件。
在grid()方法中用到了row/column(行、列)两个参数确定控件位置。
下面P13-G3-Grid-1.py中,在顶层窗口root中创建了3个Label(标签),使用grid()布局控件。
!!!程序第5、6、7行为控件位置参数定义,可以直接改参数值,避免到下面程序中改,这样便于改参数,运行程序,对比结果。第5、6、7行的参数在第19、20、21行用到。
2 跨格
使用grid()的rowspan/columnspan参数定义控件跨格(类似Excel的合并单元格,合并几行、几列)。
下面P14-G3-Grid-2.py中,第5、6、7行分别为每个控件定义了4参数,用于定义3个标签控件的行、列位置和跨行、跨列参数,对应19、20、21行。
在grid()方法中,rowspan/columnspan默认值为1,为了便于修改,在每个控件的grid()方法中都设置了rowspan/columnspan参数。
!!!改第5、6、7行参数,运行程序,可对比不同排列、跨格效果。
3 边距
在grid()方法中,同样可以用padx/pady参数定义控件外边距,使用ipadx/ipady定义控件内边距。但ipadx/ipady很少使用,因为在控件中定义更方便,更便于“分级”管理。
下面P15-G3-Grid-3.py中,第8行定义了4个参数,用于定义控件内外边距,在20~25行用到。
!!!改第8行参数,运行程序,可对比不同内外边距效果。
4 对齐
控件宽度、高度不一致时,可以使用grid()方法的sticky参数将控件对齐。
下面P16-G3-Grid-4.py中,第9行定义了3个参数,用于定义控件控件的对齐,在21、22、23行用到。
!!!改第9行参数,运行程序,可对比不同对齐效果。同时,也可以结合修改第5、6、7行参数,运行程序,查看组合效果。
5 随动
窗口尺寸变化,各控件尺寸可以按照一定比例缩放。使用grid()方法的rowcongfigure/columnconfigure参数实现。
下面P17-G3-Grid-5.py中,第10行定义了3个参数,用于定义控件控件随窗口变化时的变化比例,在26~31行用到。
对齐方式sticky参数对rowcongfigure/columnconfigure参数效果有一定影响,需要结合使用。
!!!改第9、10行参数,运行程序后拖动窗口边框,改变窗口尺寸,可对比不同对齐方式、随变比例效果。
6 小结
有Excel做对比,grid()方法比较容易理解和应用。注:4、5节程序第8行删掉=前的,