购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.2 grid()方法

在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.1 grid()方法的参数设置

视频讲解

接下来具体介绍表4.2中各参数的使用。

☑ row,column:定义组件所在的行和列。

这是grid()网格布局方法中比较重要的两个参数,如果省略,则使用默认值“row=0,column=0”,而单元格的大小取决于最大的组件的宽度。

实例4.7 显示4以内的乘法表

实例位置:资源包\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()布局中相同,此处不再演示。

4.2.2 rowconfigure()方法和columnconfigure()方法设置组件的缩放比例

视频讲解

tkinter模块添加的窗口的大小默认都是可以通过拖动鼠标改变的,而当窗口大小改变时,可以通过rowconfigure()方法和columnconfigure()方法改变某行或某列组件所占空间随窗口缩放的比例。其语法如下:

上面语法中,win为实例化的窗口;“0”和“1”分别表示设置第1行和第2列组件随窗口缩放;weig ht表示随窗口缩放的比例。

实例4.8 实现在窗口的四角添加四个方块

实例位置:资源包\Code\04\08

实现在窗口的四角添加四个方块,并且无论放大或缩小窗口,四个方块始终位于窗口的四角。具体代码如下:

运行效果如图4.19所示,放大窗口后,可看到效果如图4.20所示。

图4.19 放大窗口前

图4.20 放大窗口后

注意

rowconfigure()和columnconfigure()方法是设置在父容器上而并非设置在组件上的,这一点要尤其注意。 yX4hQmbQBvoiaaw+0D9kHXf3C2ZzQvH7rsxj8PaJzKJJ66vryx9NX5xTcqUHifn2

点击中间区域
呼出菜单
上一章
目录
下一章
×