网格布局
Tkinter中有多种组件布局方式,其中网格布局是目前最为推荐的组件布局方式。要将组件加入到网格布局,需要在组件上调用.grid()
方法。.grid()
方法接受以下参数来定义网格布局。
参数名 | 功能 |
---|---|
column | 所在网格列数,从0开始计数 |
columnspan | 同时占据列数 |
in_ | 指定组件的父组件 |
ipadx | 内部左侧和右侧的留白 |
ipady | 内部上部和下部的留白 |
padx | 外部左侧和右侧的留白 |
pady | 外部上部和下部的留白 |
row | 所在网格行数,从0开始计数 |
rowspan | 同时占据行数 |
sticky | 指示组件在网格中的对齐位置 |
参数sticky
可以影响组件的大小,其取值可参考以下方式。
- 不给定
sticky
的值,组件以原始大小在所在网格中居中放置。 - 赋值
sticky=tk.NE
等单一固定值,组件将放置在所在网格的相应锚点位置。 - 赋值
sticky=tk.N+tk.S
将会使组件垂直方向拉伸贴近锚点并居中放置。 - 赋值
sticky=tk.E+tk.W
将会使组件水平方向拉伸贴近锚点并居中放置。 - 赋值
sticky=tk.N+tk.E+tk.S+tk.W
将会使组件在四个方向上拉伸以填满网格。 - 赋值
sticky=tk.N+tk.W
将会使组件在相应方向上拉伸。
在容器组件上调用.columnconfigure()
和.rowconfigure()
可以对指定行列进行配置。这两个方法接受的第一个参数是行列的索引,用来指定其后的配置应用在哪里。行列的配置主要由以下三项内容构成。
minsize
,最小大小,以像素值描述。pad
,周围的留白大小。weight
,定义行列在缩放时的缩放比例权重。