用Tkinter打造GUI开发工具(13)Tkinter小部件的place布局

112 篇文章 45 订阅
106 篇文章 119 订阅

用Tkinter打造GUI开发工具(13)Tkinter小部件的place布局
place布局管理可以显式的指定小部件的绝对位置或相对于其它部件的位置。要使用 Place布局, 调用相应控件的 place() 方法就可以了。 所有 Tkinter 的标准部件都可以调用 place()。
使用place()显示一个小部件w,其语法格式如下。

w.place(option=value, ...)    

w.place(option=value, …)
place()部件放置方法参数option见下表.

参数说明
anchor部件的对齐方式,顶对齐N,底对齐S,左对齐W,右对齐E。值为:N,NE,E,SE,S,SW,W,NW,CENTER。
x部件左上角的x坐标。
y部件左上角的y坐标。
relx部件左上角相对于窗口的x坐标,应为0-1之间的小数。
rely部件左上角相对于窗口的y坐标,应为0-1之间的小数。
width部件的宽度。
height部件的高度。
relwidth部件相对于窗口的宽度,0-1之间的小数,图形宽度相对窗口变化。
relheight部件相对于窗口的高度,0-1之间的小数,图形高度相对窗口变化。

使用place()函数,它分为绝对布局和相对布局,绝对布局使用 x 和 y 参数,相对布局使用 relx,rely,relheight 和 relwidth 参数。
如果窗口是固定大小的,可以使用place()函数,否则窗口大小改变后,就不好看了。
不过place()可以与pack()或grid()布局方法混用。因此使用palce()方法布局的控件可以叠加。
请看下面一个示例程序。通过Label部件通过place()方法叠加,产生渐变蓝色背景。

# -*- coding: utf-8 -*-
import  tkinter  as  tk

root=tk.Tk()  #闯将 Tk主窗口 
root.geometry('{}x{}'.format(500,256))  #改变窗口大小

for i in range(256):
    l=tk.Label(root,text="", relief=tk.RIDGE,bg='#%02x%02x%02x'%(0,0,255-i),width=300)
    l.place(x=0,y=i)

l=tk.Label(root,text="超越!是我们的每一步!")
l.place(x=200,y=100)

root.mainloop() #开启Tkinter主循环

程序运行结果见下图。
在这里插入图片描述
Tkinter的Place类,除了place()方法外,还提供有以下几个方法。
place_slaves() 以列表方式返回本部件的所有子部件对象。
place_configure(option=value) 给place布局管理器设置属性,使用属性(option)= 取值(value)方式设置。
propagate(boolean)置为True表示父部件的几何大小由子部件决定(默认值),反之则无关。
place_info() 返回pack提供的选项所对应得值。
place _forget() place _forget部件,将部件隐藏并且忽略原有设置,对象依旧存在,可以用place (option, …),将其显示。
location(x, y) x, y为以像素为单位的点,函数返回此点是否在单元格中,在哪个单元格中。返回单元格行列坐标,(-1, -1)表示不在其中。
size() 返回部件所包含的单元格,揭示部件大小。

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荷蒲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值