【Python_GUI】thinker布局管理——place方法

发布于:2024-07-09 ⋅ 阅读:(153) ⋅ 点赞:(0)

place方法可以设置组件的大小以及组件在容器中的精确位置,其参数及含义如下:

参数 含义
X 设置组件距离窗口左侧的水平距离
y 设置组件距离窗口顶部的垂直距离
width 设置组件的宽度
height 设置组件的高度
relx 设置组件距离窗口左侧的相对距离,范围为0-1
rely 设置组件距离窗口顶部的相对距离,范围为0-1
relwidth 组件相对父容器的宽度,范围为0-1
relhright 组件相对父容器的高度,范围为0-1

下面,用华容道游戏的窗口布局来展示用法:

from tkinter import *

win=Tk()
#标题
win.title('华容道')
win.geometry('240x300')
Label(win,text='赵云',relief='groove',font=14).place(width=60,height=120,x=0,y=0)
Label(win,text='曹操',relief='groove',font=14).place(width=120,height=120,x=60,y=0)
Label(win,text='黄忠',relief='groove',font=14).place(width=60,height=120,x=180,y=0)
Label(win,text='张飞',relief='groove',font=14).place(width=60,height=120,x=0,y=120)
Label(win,text='关于',relief='groove',font=14).place(width=120,height=60,x=60,y=120)
Label(win,text='马超',relief='groove',font=14).place(width=60,height=120,x=180,y=120)
Label(win,text='卒',relief='groove',font=14).place(width=60,height=60,x=60,y=180)
Label(win,text='卒',relief='groove',font=14).place(width=60,height=60,x=120,y=180)
Label(win,text='卒',relief='groove',font=14).place(width=60,height=60,x=0,y=240)
Label(win,text='卒',relief='groove',font=14).place(width=60,height=60,x=180,y=240)
win.mainloop()

为了放大窗口时,希望窗口内的组件能够跟随窗口的缩放而缩放,可以使用relx、rely、relwidth、relhright参数来设置相对位置,取值范围为0-1

Label(win,text='赵云',relief='groove',font=14).place(relwidth=0.25,relheight=0.4,relx=0,rely=0)
Label(win,text='曹操',relief='groove',font=14).place(relwidth=0.5,relheight=0.4,relx=0.25,rely=0)
Label(win,text='黄忠',relief='groove',font=14).place(relwidth=0.25,relheight=0.4,relx=0.75,rely=0)
Label(win,text='张飞',relief='groove',font=14).place(relwidth=0.25,relheight=0.4,relx=0,rely=0.4)
Label(win,text='关于',relief='groove',font=14).place(relwidth=0.5,relheight=0.2,relx=0.25,rely=0.4)
Label(win,text='马超',relief='groove',font=14).place(relwidth=0.25,relheight=0.4,relx=0.75,rely=0.4)
Label(win,text='卒',relief='groove',font=14).place(relwidth=0.25,relheight=0.2,relx=0.25,rely=0.6)
Label(win,text='卒',relief='groove',font=14).place(relwidth=0.25,relheight=0.2,relx=0.5,rely=0.6)
Label(win,text='卒',relief='groove',font=14).place(relwidth=0.25,relheight=0.2,relx=0,rely=0.8)
Label(win,text='卒',relief='groove',font=14).place(relwidth=0.25,relheight=0.2,relx=0.75,rely=0.8)

网站公告

今日签到

点亮在社区的每一天
去签到