Tkinter编程应知应会(5)-place布局管理器

place布局管理器是Tkinter支持的第三种布局管理器,它允许程序员直接指定控件的位置和大小。例如下面的代码:

 

 

from tkinter import *root = Tk()# 绝对位置Button(root,text="绝对坐标摆放1").place(x=20, y=10, width=150, height=50)Button(root, text="绝对坐标摆放2").place(x=20, y = 80, width=150, height=50)root.mainloop()

通过指定两个按钮的绝对坐标,宽度和高度生成以下的画面:

Tkinter编程应知应会(5)-place布局管理器_第1张图片

读者尝试拖动窗口的有边界和下边界可以知道,无论如何调整窗口的大小,两个按钮的大小和位置都不会发生改变:

Tkinter编程应知应会(5)-place布局管理器_第2张图片

也可以按照相对坐标摆放控件的位置,例如下面的代码:

 

 

from tkinter import *root = Tk()Button(root,text="相对坐标摆放1").place(relx=0.2, rely=0.2, relwidth=0.6, relheight=0.2)Button(root,text="相对坐标摆放2").place(relx=0.2, rely=0.6, relwidth=0.6, relheight=0.2)root.mainloop()

和使用绝对坐标时的区别就在于在每个属性的前面都加一个rel前缀。数值的含义是窗口宽或高的相对值。例如relx=0.2从含义按钮的开始位置时窗口宽度20%的位置,以此类推。这段代码的执行之后生成如下的画面:

Tkinter编程应知应会(5)-place布局管理器_第3张图片

如果读者拖动窗口的边界扩大窗口的大小,空间的尺寸和位置也会随之发生变化,但是在水平和垂直两个方向上位置比例不变。

Tkinter编程应知应会(5)-place布局管理器_第4张图片

place布局管理器虽然看起来简单,但是但控件的数量多了以后,坐标的计算和维护都会变得很复杂。正是由于这个原因,几乎没有Tkinter应用会使用这种布局管理器。

但是由用户这种方式对于控件位置和尺寸的安全控制,如果我们希望自已定义一种布局方式,这种方式可以作为基础。

 

觉得本文有帮助?请分享给更多人。

阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】

你可能感兴趣的:(Tkinter,Tkinter)