tkinter的布局方式有三种,pack(),grid(),place(),前面文章中已经简单介绍过前面两种,本文用示例来简单说说place()的用法:
place()布局在定位时一定要输入坐标,可以是相对坐标,也可以是绝对坐标,下面我们分别来看看:
##place绝对定位
tk.Label(root,text='这是一个绝对定位标签',bg='red',fg='white').place(x=0,y=0)
tk.Label(root,text='这个标签的宽度和长度',bg='yellow',fg='white').place(x=150,y=0,width=110,height=20)
x,y分别是定义组件的x坐标和y坐标,是绝对定位的坐标
width,height,定义了组件的长度出宽度,是固定的
##place相对定位
tk.Label(root,text='这是一个相对定位标签',bg='blue',fg='white').place(relx=0,rely=0.5)
tk.Label(root,text='这个标签的宽度和长度',bg='orange',fg='white').place(relx=0.3,rely=0.7,relwidth=0.5,height=20)
relx,rely是定义组件的相对x坐标和y坐标,是相对定位的坐标,取值是0,1之间的小数,理解为相对于窗体百分比的位置
relwidth,relheight定义了组件的相对窗体百分比的长度与宽度,如果你拉伸或缩小窗体,组件也会跟着拉伸或缩小,取值也是0,1之间的小数
执行结果:
完整代码:
import tkinter as tk
root = tk.Tk()
root.title('python库tkinter中place布局概念')
##place绝对定位
tk.Label(root,text='这是一个绝对定位标签',bg='red',fg='white').place(x=0,y=0)
tk.Label(root,text='这个标签的宽度和长度',bg='yellow',fg='white').place(x=150,y=0,width=110,height=20)
##place相对定位
tk.Label(root,text='这是一个相对定位标签',bg='blue',fg='white').place(relx=0,rely=0.5)
tk.Label(root,text='这个标签的宽度和长度',bg='orange',fg='white').place(relx=0.3,rely=0.7,relwidth=0.5,height=20)
root.mainloop()