如何防止Tkinter控件缩小至与其内容尺寸一致?
问题原因
Tkinter 布局管理器默认开启子组件尺寸传播特性:容器的最终尺寸会自动适配内部所有子组件的总大小,因此仅给 hierarchyframe 声明width属性不会生效,当内部Label宽度小于260时,Frame会被自动压缩到适配Label的尺寸。
解决方案
你可以任选以下任意一种方法解决:
- 方案1:关闭
hierarchyframe的尺寸传播
在hierarchyframe完成grid布局后添加如下代码即可,禁止子组件修改父容器尺寸:hierarchyframe.grid_propagate(False) - 方案2:给
hierarchyframe所在的列设置最小宽度
给mainframe的第0列设置最小宽度约束,从上层布局层面固定列宽,添加代码如下:mainframe.columnconfigure(0, minsize=260)
修改后运行即可看到hierarchyframe固定保持260的宽度,不会被内部Label压缩。
内容的提问来源于stack exchange,提问作者Notebooked
相关产品推荐
相关产品推荐

