tkinter grid布局教程
tkinter 元素布局方式
参考菜鸟教程tkinter有三种方式分别为pack()
、grid()
、place()
其中grid()
有着其他两种方法不能有的优势
grid
方法将窗口按照行列划分,便于布局管理
以下是使用grid
布局管理实现可伸缩大小的布局
from tkinter import *
init_window = Tk()
# 实例一个主窗口
init_window.title('grid frames')
init_window.geometry('500x500')
init_window.grid_rowconfigure(0, weight=1)
init_window.grid_columnconfigure(0, weight=1)
init_window.grid_columnconfigure(1, weight=1)
init_window.grid_rowconfigure(1, weight=1)
# 只有对每一行每一列都设置了grid_row/columnconfigure才能实现frame大小的扩充,其中weight参数可以设置每一块的权重
frame_1 = Frame(init_window,padx=5,pady=5,bg='red')
frame_2 = Frame(init_window,padx=5,pady=5,bg='pink')
frame_3 = Frame(init_window,padx=5,pady=5,bg='peachpuff')
frame_4 = Frame(init_window,padx=5,pady=5,bg='green')
frame_1_label = Label(frame_1,text='frame1')
frame_2_label = Label(frame_2,text='frame2')
frame_3_label = Label(frame_3,text='frame3')
frame_4_label = Label(frame_4,text='frame4')
frame_1_label.pack()
frame_2_label.pack()
frame_3_label.pack()
frame_4_label.pack()
frame_1.grid(row=0,column=0,sticky=NSEW)
# frame_1.grid(row=0,column=0,columnspan=2,sticky=NSEW)
# columnspan参数代表frame占几列的网格长度若设置为2就横跨2格
frame_2.grid(row=0,column=1,sticky=NSEW)
frame_3.grid(row=1,column=0,sticky=NSEW)
frame_4.grid(row=1,column=1,sticky=NSEW)
# 这里的sticky参数也是必须的,相当于允许frame在什么方向扩充NSEW分别就是 北南东西
init_window.mainloop()