Python Tkinter 布局管理器

grid 布局管理器

  1. 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() 布局管理器

  1. pack按照组件的创建顺序将子组件添加到父组件中,按照垂直或者水平的方向自然排布。
    如果不指定任何选项,默认在父组件中 自顶向下垂直 添加组件。
  2. 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() 布局管理器

  1. 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"(默认)