Python Tkinter place绝对布局 作者:马育民 • 2023-08-20 20:04 • 阅读:10130 # 介绍 place布局适用于更加复杂的,需要 **准确摆放** 组件的容器。 这种布局不是很常用,因为使用 **比较麻烦**,**也最简单**,需要提供 `x、y坐` 标以及组件的 `width` 和 `height`(以像素为单位) ### tkinter坐标系 左上角为(0, 0)  # place布局参数 ### x 和 y 组件在x轴和y轴上的位置,单位为像素。 ### relx 和 rely 组件 **相对于** 容器的位置,是一个 `0-1` 之间的浮点数,表示组件位于整个容器的位置。 比如:组件的 `x` 设在容器 `30%` 的位置,就设为 `relx=0.3` 如果想要把 **组件居中**,就设置 `relx=0.5, rely=0.5, anchor="center"` ### x、y 和 relx、rely 由于都是设置位置,所以:要么使用 `x、y`,要么使用 `relx、rely`,不同时使用 ### width 和 height 指定组件的宽和高。 ### relwidth 和 relheight 指定组件 **相对于** 容器的宽与高,即:控件大小会随着窗口大小改变而改变 是一个 `0-1` 之间的浮点数 如:组件宽是容器宽的 `50%`,则设置为 `relwidth=0.5` ### width、height 和 relwidth、relheight 由于都是设置 宽和高,所以:要么使用 `width、height`,要么使用 `relwidth、relheight`,不同时使用 ### anchor 组件的锚选项,可选有八个方位,以及 `center`。意思是:将组件 `anchor` 位置的坐标设置为 `x,y`。 如:`anchor="nw"` 的时候,如果 `x=100, y=100`,那么组件的 ** 左上角** 的位置就是 `100, 100`。 下面是几个例子:  # 例子1 - x、y 和 width、height  ``` import tkinter as tk # 创建窗口 win = tk.Tk() # 窗口标题 win.title("测试") # 600宽、400高 win.geometry("600x400") label1 = tk.Label(win, text="华为",bg="red") label2 = tk.Label(win, text="iphone",bg="green") label3 = tk.Label(win, text="小米",bg="blue") ''' 绝对布局,窗口大小的变化对布局没有影响 ''' label1.place(x=10, y=10,width=100,height=30) label2.place(x=50, y=50,width=200,height=50) label3.place(x=100, y=100,width=300,height=70) win.mainloop() ``` # 例子2 - relx、rely 和 relwidth、relheight  ``` import tkinter as tk # 创建窗口 win = tk.Tk() # 窗口标题 win.title("测试") # 600宽、400高 win.geometry("600x400") label1 = tk.Label(win, text="华为",bg="red") label2 = tk.Label(win, text="iphone",bg="green") label3 = tk.Label(win, text="小米",bg="blue") ''' 绝对布局,控件大小会随着窗口大小改变而改变 ''' label1.place(relx=0.1, rely=0.1,relwidth=0.1,relheight=0.1) label2.place(relx=0.2, rely=0.3,relwidth=0.2,relheight=0.2) label3.place(relx=0.5, rely=0.5,relwidth=0.3,relheight=0.3) win.mainloop() ``` 参考: https://blog.csdn.net/qq_48979387/article/details/125706562 原文出处:http://www.malaoshi.top/show_1IX65IHJbQvf.html