Tkinter初始化后如何设置Paned Window内组件宽高并保留可调整性?
Tkinter PanedWindow 保存/恢复组件尺寸问题
问题描述
我正尝试为Tkinter GUI实现保存/恢复功能,但在恢复Paned Window内组件的宽高时遇到难题。曾尝试使用.place()和.config方法,结果组件周围的可调整边框消失,无法再调整组件大小。
示例代码
from tkinter import * root = Tk() pw = PanedWindow(root) text1 = Text(pw) pw.add(text1) text2 = Text(pw) pw.add(text2) entry1 = Entry(pw) pw.add(entry1)
Tkinter下的正确解决思路
不要用.place()或直接修改组件的width/height配置,PanedWindow有专门的分隔条位置管理方法:
- 保存尺寸:调用
pw.sashpos(index)获取对应分隔条的位置(index从0开始,n个组件对应n-1个分隔条),将这些值存入配置文件(如JSON、ini格式) - 恢复尺寸:在所有组件添加到PanedWindow后,调用
pw.sashpos(index, position)设置每个分隔条的位置,这样不会破坏PanedWindow的可调整边框功能
示例恢复代码:
# 假设从配置文件读取到保存的分隔条位置 saved_sash_positions = [250, 500] # 示例值 for idx, pos in enumerate(saved_sash_positions): pw.sashpos(idx, pos)
后续更新
- 编辑:不再使用TTK
- 编辑2:不再使用Tkinter,已切换至PyQt5,所有功能均可正常运行。
内容的提问来源于stack exchange,提问作者explodingfilms101
相关产品推荐
相关产品推荐

