Python教程 - Tkinter布局
之前的Tkinter教程中,我们创建的控件默认都是从上到下依次排列的。实际上,我们可以完全控制每个控件的位置。
Tkinter主要提供pack、grid、place三种布局方法。
pack布局
pack布局,也叫填充布局,是Tkinter中最基本的布局。
布局方式为按照上下左右的方向去填充控件。
示例:
拖动窗口边框改变窗口大小,控件相对于窗口的位置不变
完整代码:
import tkinter
main = tkinter.Tk()
main.geometry("300x300")
b1 = tkinter.Button(main, text='b1')
b1.pack(side='top')
b2 = tkinter.Button(main, text='b2')
b2.pack(side='bottom')
b3 = tkinter.Button(main, text='b3')
b3.pack(side='left')
b4 = tkinter.Button(main, text='b4')
b4.pack(side='right')
main.mainloop()
grid布局
grid布局,也叫网格布局,将窗口划分为网格,然后通过第几行第几列去放置控件
示例:
改变窗口大小不会影响控件的位置
完整代码:
import tkinter
main = tkinter.Tk()
main.geometry("300x300")
b1 = tkinter.Button(main, text='b1')
b1.grid(row=0,column=0)
b2 = tkinter.Button(main, text='b2')
b2.grid(row=0,column=1)
b3 = tkinter.Button(main, text='b3')
b3.grid(row=1,column=0)
b4 = tkinter.Button(main, text='b4')
b4.grid(row=1,column=1)
main.mainloop()
place布局
place布局,也可以叫绝对位置布局,将控件放置在指定的x坐标和y坐标对应的位置上,可以随意指定
示例:
改变窗口大小也不会影响控件的位置
完整代码:
import tkinter
main = tkinter.Tk()
main.geometry("300x300")
b1 = tkinter.Button(main, text='b1')
b1.place(x=0,y=0)
b2 = tkinter.Button(main, text='b2')
b2.place(x=40,y=40)
b3 = tkinter.Button(main, text='b3')
b3.place(x=80,y=80)
b4 = tkinter.Button(main, text='b4')
b4.place(x=120,y=120)
main.mainloop()