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()

这篇博客介绍了Tkinter GUI编程中grid布局管理器的使用。通过实例展示了如何利用grid方法进行窗口元素的行列划分,实现可伸缩的布局。博客详细解释了grid_rowconfigure和grid_columnconfigure方法用于设置行和列的权重,以及如何使用sticky参数允许元素在特定方向上扩展。此外,还提到了columnspan属性来控制元素跨越的网格数。
1190

被折叠的 条评论
为什么被折叠?



