tkinter 有三种布局管理方式:
· pack · grid · place
注意这三种布局管理在同一个 master window 里一定不可以混用!
布局管理有以下功能:
- 将控件放置在屏幕上,包括控件的位置及控件的大小
- 将控件注册到本地窗口系统中
- 管理控件在屏幕上的显示
虽然控件自己也可以指定大小和对齐方式等信息, 但最终的控件大小及位置还是由布局管理决定的.
**place 布局
- Place 布局管理可以显式的指定控件的绝对位置或相对于其他控件的位置.
- 要使用 Place 布局, 调用相应控件的 place() 方法就可以了.
- 所有 tkinter 的标准控件都可以调用 place()
代码:
from tkinter import *
root=Tk()
root.geometry('200x200')
lb=Label(root,text = 'Label',fg='red')
#使用绝对坐标将组件放到指定的位置
lb.place(x=10,y=10,anchor=NW)
lb1=Label(root,text='label2',fg='blue')
# 使用相对坐标放置组件位置
# relx, rely 指定组件放置的绝对位置,范围为(0-1.0)
lb1.place(relx=0.5,rely=0.5,anchor=CENTER)
# place同时指定多个组件
# v = IntVar()
for i in range(1,6):
Radiobutton(
root,
text='radio'+str(i),
#variable=v,
#value=i
).place(y=30*i,anchor=NW)
#同时使用相对和绝对坐标时,相对坐标优先操作,然后是在这个相对坐标的基础上进行偏移
lb2 =Label(root,text='place2',fg='green')
lb3=Label(root,text='place',fg='red')
#先设置相对坐标为(0.01,0.2)
lb2.place(relx=0.01,rely=0.2,anchor=CENTER,x=160,y=0)
#先设置相对坐标为(0.01,0.02)
lb3.place(relx=0.01,rely=0.02,anchor=CENTER,x=160,y=160)
root.mainloop()
效果演示效果图:
参考资料:
网友评论