Python Tkinter 布局管理器
grid 布局管理器
- grid表格布局,采用表格结构组织组件,子组件的位置由行和列的单元格来确定,并且可以跨行和跨列,从而实现复杂的布局
grid()方法提供的选项
选项 | 说明 | 取值范围 |
column | 单元格的列号 | 从0开始的正整数 |
columnspan | 跨列,跨越的列数 | 正整数 |
row | 单元格的行号 | 从0开始的正整数 |
rowspan | 跨行,跨越的行数 | 正整数 |
ipadx,ipady | 设置子组件之间的问隔, x 方向或者 y 方向,默认单位为像素 | 非负浮点数, 默认 0.0 |
padx,pady | 与之并列的组件之间的间隔,x 方向或者 y 方向,默认单位是像素 | 非负浮点数, 默认 0.0 |
sticky | 组件紧贴所在单元格的某一角, 对应于东南西北中以及4个角 | "n", "s", "w", "e", "nw","sw","se","ne","center"(默认) |
pack() 布局管理器
- pack按照组件的创建顺序将子组件添加到父组件中,按照垂直或者水平的方向自然排布。
如果不指定任何选项,默认在父组件中 自顶向下垂直 添加组件。 - pack是代码量最少,最简单的一-种,可以用于快速生成界面。
pack()方法提供的选项
名称 | 描述 | 取值范围 |
expand | 当值为"yes"时,side 选项无效。组件显示在父配件中心位置若fill选项为"both",则填充父组件的剩余空间 | "yes'", 自然数,"no”, 0 (默认值"no"或 0 ) |
fill | 填充x(y)方向上的空间。当属性side="top"或"bottom"时,填充x方向;当属性side= "1et"或"right"时,填充Y方向; 当 expand 选项为"yes"时,填充父组件的剩余空间 | "x","y","both",”none"默认值为none) |
ipadx,ipady | 设置子组件之间的间隔,x 方向或者 y 方向。默认单位为像素 | 非负浮点数,默认0.0 |
padx,pady | 与之并列的组件之间的间隔,x 方向或者 y 方向,默认单位是像素 | 非负浮点数,默认0.0 |
side | 定义停靠在父组件的哪一边上 | "top","bottom",'left" ,"right"(默认为 "top" ) |
before | 将本组件于所选组建对象之间pack,类似于先创建本组件再创建选定组件 | 已经pack后的组件对象 |
after | 将本组件于所选组建对象之后pack,类似于先创建选定组件再本组件 | 已经pack后的组件对象 |
in_ | 将本组件作为所选组建对象的子组件,类似于指定本组件的master为选定组件 | 已经pack后的组件对象 |
anchor | 对齐方式,左对齐"w".右对齐"e".顶对齐"n"。 底对齐"$" | "n", "s", "w", "e", "nw", "sw","se", "ne", "center"(默认) |
- 建议:如上列出了pack布局所有的属性,但是不需要挨个熟悉,了解基本的即可。pack适用于简单的垂直或水平排布,如果需要复杂的布局可以使用 grid() 或 place()
place() 布局管理器
- place布局管理器可以通过坐标精确控制组件的位置,适用于一些布局更加灵活的场景
place()方法提供的选项
选项 | 说明 | 取值范围 |
x,y | 组件左上角的绝对坐标(相对于窗口) | 非负整数 x和y选项用于设置偏移(像素),如果同时设置 relx(rely) 和 x(y),那么 place 将优先计算 relx 和 rely, 然后再实现 x 和 y 指定的偏移值 |
relx,rely | 组件左上角的坐标(相对于父容器) | relx是相对父组件的位置,0是最左边,0.5 是正中间,1是最右边; rely是相对父组件的位置,0是最上边,0.5 是正中间,1是最下边; |
width,height | 组件的宽度和高度 | |
relwidth,relheight | 组件的宽度和高度(相对于父容器) | 与relx, rely 取值类似,但是相对于父组件的尺寸 |
anchor | 对齐方式: 左对齐"w",右对齐"e",顶对齐"n",底对齐"s" | "n", “s", "w", "e", "nw", "sw", "se", "ne", "center"(默认) |