python+tkinter 的布局


from tkinter import *

win = Tk()
win.title("布局")  # #窗口标题
win.geometry("600x500+200+20")  # #窗口位置500后面是字母x

#绝对布局
label1 = Label(win, text="标签1",bg="yellow")
label1.place(x=500, y=100)
#相对布局
label2 = Label(win, text="标签2",bg="pink")
label2.pack(fill=Y, side=LEFT)
#表格布局
label3 = Label(win, text="标签3", bg="blue")
label3.grid(row=1, column=10)

win.mainloop()

#不同的布局可能存在冲突,尽量不要混合使用

 一、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”(默认)

 二、pack的参数

参数 解释
side

停靠在哪个方向

    left: 左

    top: 上

    right: 右

    botton: 下

fill

填充

    x:水平方向填充

    y:竖直方向填充

    both:水平和竖直方向填充

    none:不填充

expand

True:随主窗体的大小变化

False:不随主窗体的大小变化

anchor

            N:北  下

    E:东  右

    S:南 下

    W:西 左

    CENTER:中间

padx

x方向的外边距

pady y方向的外边距
ipadx x方向的内边距
ipady y方向的内边距

 三、grid的参数

参数 解释
column 列数
columnspan 行占几个单元
in_

in=w2,视为w2的子插件

padx

x方向的外边距

pady y方向的外边距
ipadx x方向的内边距
ipady y方向的内边距
row 第几行
rowspan 列占几个单元
sticky 单元格内的位置 N上 E右 S下 W左 ,可以组合比如NS为居中 NE为右上