place
place()
方法:根据控件实例在父容器中的绝对或相对位置参数进行布局。place
可实现更加精确的定位。
参数
属性名 | 属性简析 | 取值 | 取值说明 |
---|---|---|---|
anchor | 锚点, 当可用空间大于所需求的尺寸时,决定组件被放置于容器的何处 | N、E、S、W、NW、NE、SW、SE、CENTER (默认值) | 表示八个方向以及中心 |
x /y | 组件左上角的x、y坐标 | 整数,默认值0 | 绝对位置坐标,单位像素 |
relx /rely | 组件相对于父容器的x、y坐标 | 0~1之间浮点数 | 相对位置,0.0表示左边缘(或上边缘),1.0表示右边缘(或下边缘) |
width /height | 组件的宽度、高度 | 非负整数 | 单位像素 |
relwidth /relheight | 组件相对于父容器的宽度、高度 | 0~1之间浮点数 | 与relx(rely) 取值类似 |
bordermode | 若是设置为INSIDE ,组件内部的大小和位置是相对的,不包括边框;若是是OUTSIDE ,组件的外部大小是相对的,包括边框 | INSIDE (默认)、OUTSIDE | 可使用常量INSIDE 、OUTSIDE ,也可使用字符串形式inside 、outside |
利用place()
方法配合relx
,rely
和relheight
,relwidth
参数所得的到的界面可自适应根窗体尺寸的大小。place()
方法与grid()
方法可以混合使用。
方法
place_slaves()
: 以列表方式返回本组件的全部子组件对象place_configure(option=value)
: 给place
布局管理器设置属性,使用属性option=value
方式设置propagate(boolean)
: 设置为True
表示父组件的几何大小由子组件决定(默认值),反之则无关place_info()
: 返回place
提供的选项所对应得值grid_forget()
:Unpack
组件,将组件隐藏而且忽略原有设置,对象依旧存在,能够用pack(option, …)
,将其显示location(x, y)
:x/y
为以像素为单位的点,函数返回此点是否在单元格中,在哪一个单元格中。返回单元格行列坐标,(-1, -1)表示不在其中size()
: 返回组件所包含的单元格,揭示组件大小
例子
当复杂布局可充分利用place
方法,relx
, rely
, relheight
, relwidth
,来实现不同frame完全占据指定区域划分。
如下方式布局便实现了,左右两个frame
组件左右平分布局各一半
from tkinter import Tk, Frame, Text
root = Tk()
root.geometry('700x500')
win_l = Frame(root, relief="sunken")
win_l.place(relx=0, rely=0, relheight=1, relwidth=0.5)
win_r = Frame(root, relief="sunken")
win_r.place(relx=0.5, rely=0, relheight=1, relwidth=0.5)
Text(win_l).place(relheight=1, relwidth=1)
Text(win_r).place(relheight=1, relwidth=1)
root.mainloop()