Python+tkinter使用爬虫数据开发实例项目过程实录【2】tkinter创建可自适应窗口调整大小的界面

如题,PC应用,通常是允许用户调节窗口的大小,那么窗口内的控件大小就需要跟随窗口大小变化进行自适应调整,最终效果如下


权重的设置的作用

Python+tkinter使用爬虫数据开发实例项目过程实录【2】tkinter创建可自适应窗口调整大小的界面_第1张图片

例子中的代码,在主窗口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()


A:原始尺寸
Python+tkinter使用爬虫数据开发实例项目过程实录【2】tkinter创建可自适应窗口调整大小的界面_第2张图片


B:仅添加行1的权重

# 仅添加行1的权重
Frame1.rowconfigure(0, weight=1)

Python+tkinter使用爬虫数据开发实例项目过程实录【2】tkinter创建可自适应窗口调整大小的界面_第3张图片


C:添加1,2两行的权重

# 添加1,2两行的权重
Frame1.rowconfigure(0, weight=1)
Frame1.rowconfigure(1, weight=1)

Python+tkinter使用爬虫数据开发实例项目过程实录【2】tkinter创建可自适应窗口调整大小的界面_第4张图片


C:添加1,10两行的权重

# 添加1,10两行的权重
Frame1.rowconfigure(0, weight=1)
Frame1.rowconfigure(9, weight=1)

Python+tkinter使用爬虫数据开发实例项目过程实录【2】tkinter创建可自适应窗口调整大小的界面_第5张图片


容器中的对象,会先按原始尺寸进行填充,然后
1:如果有设置权重
2:容器有剩余的空间
3:对sticky属性进行了设置
拉伸才会有效果。
权重是针对剩余的空间,权重也就是一个分配的比例.
比如:剩余12个单位的高度(宽度)。第1行(列)设置weight=1,第2行(列)设置weight=2,那么也就是第1行(列)会拉伸4个单位,第2行(列)会拉伸8个单位。

效果实例

A:左右2个区域,左边区域不变,右边区域拉伸

Python+tkinter使用爬虫数据开发实例项目过程实录【2】tkinter创建可自适应窗口调整大小的界面_第6张图片


B:上下2个区域,下方区域不变,上方区域拉伸

Python+tkinter使用爬虫数据开发实例项目过程实录【2】tkinter创建可自适应窗口调整大小的界面_第7张图片

你可能感兴趣的:(python)