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()
posted @ 2022-05-22 17:49  hgrun  阅读(1984)  评论(0编辑  收藏  举报