在Excel表格中,使用大写的英文字母定位单元格所在的列,使用数字定位单元格所在的行,这样就可以快速定位单元格的位置。tkinter中也提供了类似Excel表格的布局方式,即grid()网格布局方式,在该网格中使用row定义组件所在的行,使用column定义组件所在的列,具体如图4.13所示。
图4.13 grid()网格布局原理示意图
注意
使用grid()方法进行网格布局时,第一行和第一列的序号应该是0,即“row=0,column=0”。
grid()方法中提供了许多参数,使用这些参数可以布局一些较为复杂的页面,具体参数及其含义如表4.2所示。
表4.2 grid()方法的参数及其含义
视频讲解
接下来具体介绍表4.2中各参数的使用。
☑ row,column:定义组件所在的行和列。
这是grid()网格布局方法中比较重要的两个参数,如果省略,则使用默认值“row=0,column=0”,而单元格的大小取决于最大的组件的宽度。
实例位置:资源包\Code\04\07
使用grid()方法显示4以内的乘法表,具体代码如下:
上述代码中通过row和column指定了各乘法算式的位置,运行效果如图4.14所示。
图4.14 使用grid()方法显示乘法表
☑ rowspan和columnspan:组件纵向合并的行数和横向合并的列数。
例如,设置第一行组件横向合并四列,第二行的两个组件分别横向合并两列。具体代码如下:
运行效果如图4.15所示。
图4.15 columnspan的使用
注意
合并行和合并列时,只是增大组件占用的空间,并不会增大组件本身。
☑ sticky:其功能与anchor类似,不过它只有4个可选的参数值,即N(上对齐)、S(下对齐)、W(左对齐)、E(右对齐)。
默认情况下,如果组件的宽度不一致,宽度较小的组件会以宽度较大的组件为基准,将同列其他组件居中对齐。例如,添加两个Label组件,第二个组件以第一个组件为基准,居中对齐,具体代码如下:
运行效果如图4.16所示。
通过sticky参数就可以设置组件的对齐方式,例如,将图4.16中的第二个组件修改为左对齐,仅需要对上面代码的第4行进行修改,具体代码如下:
运行效果如图4.17所示。
图4.16 第二个组件以第一个组件为基准居中对齐
图4.17 sticky参数设置组件左对齐
sticky参数不仅可以单独使用,还可以组合使用,具体组合方式及含义如下:
➢ sticky=N+S:拉长组件的高度,使组件的顶端和底端分别对齐。
➢ sticky=N+S+E:拉长组件的高度,使组件的顶端和底端分别对齐,同时切齐右边。
➢ sticky=N+S+W:拉长组件的高度,使组件的顶端和底端分别对齐,同时切齐左边。
➢ sticky=E+W:拉长组件的宽度,使组件的左边和右边分别对齐。
➢ sticky=N+S+E+W:拉长组件的高度,使组件的顶端和底端分别对齐,同时切齐左边和右边。
例如,将图4.17中第二个组件的左右两边与第一个组件切齐,需要将第4行代码修改为以下代码:
运行效果如图4.18所示。
图4.18 sticky参数组合使用
说明
grid()方法中的padx和pady参数与pack()布局中相同,此处不再演示。
视频讲解
tkinter模块添加的窗口的大小默认都是可以通过拖动鼠标改变的,而当窗口大小改变时,可以通过rowconfigure()方法和columnconfigure()方法改变某行或某列组件所占空间随窗口缩放的比例。其语法如下:
上面语法中,win为实例化的窗口;“0”和“1”分别表示设置第1行和第2列组件随窗口缩放;weig ht表示随窗口缩放的比例。
实例位置:资源包\Code\04\08
实现在窗口的四角添加四个方块,并且无论放大或缩小窗口,四个方块始终位于窗口的四角。具体代码如下:
运行效果如图4.19所示,放大窗口后,可看到效果如图4.20所示。
图4.19 放大窗口前
图4.20 放大窗口后
注意
rowconfigure()和columnconfigure()方法是设置在父容器上而并非设置在组件上的,这一点要尤其注意。