如题,PC应用,通常是允许用户调节窗口的大小,那么窗口内的控件大小就需要跟随窗口大小变化进行自适应调整,最终效果如下
win
中添加一个容器Frame
(框架)。在没有添加权重的设置,容器的拉伸属性sticky
没有生效。***所以,要实现控件自适应窗口调整,关键的一个步骤就是权重设置。***
1、在上面例子的容器中,添加3个效果演示的Lable
from tkinter import *
win = Tk()
win.wm_minsize(400, 220)
win.rowconfigure(0, weight=1)
win.columnconfigure(0, weight=1)
Frame1 = Frame(win, bg="#74CB10")
Frame1.grid(row=0, column=0, sticky=NSEW)
# Frame1.rowconfigure(0, weight=1)
# Frame1.columnconfigure(0, weight=1)
# Frame1.columnconfigure(1, weight=1)
left = Label(Frame1, text='left', bg='#DD5044')
left.grid(row=0, column=0, sticky=NSEW)
right = Label(Frame1, text='right', bg='#1BA160')
right.grid(row=0, column=1, sticky=NSEW)
bottom = Label(Frame1, text='bottom', bg='#FD6934')
bottom.grid(row=1, column=0, columnspan=2, sticky=NSEW)
win.mainloop()
B:仅添加行1的权重
# 仅添加行1的权重
Frame1.rowconfigure(0, weight=1)
C:添加1,2两行的权重
# 添加1,2两行的权重
Frame1.rowconfigure(0, weight=1)
Frame1.rowconfigure(1, weight=1)
C:添加1,10两行的权重
# 添加1,10两行的权重
Frame1.rowconfigure(0, weight=1)
Frame1.rowconfigure(9, weight=1)
sticky
属性进行了设置weight=1
,第2行(列)设置weight=2
,那么也就是第1行(列)会拉伸4个单位,第2行(列)会拉伸8个单位。