You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 12:52:11