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

Tkinter Frame添加Label后出现尺寸异常该如何修复

问题原因

tkinter的Frame容器默认开启**几何体传播(geometry propagation)**特性:当容器使用pack/grid布局管理子控件时,会自动忽略自身预设的width、height参数,调整自身尺寸刚好适配所有内部子控件。
你仅在单个Tab加Label时,另一个空Tab的Frame会维持预设尺寸;两个Tab都加Label后,两个Frame都被压缩到刚好容纳Label的大小,就会出现尺寸错乱的问题。

修复方案

给两个Tab的Frame关闭pack布局的几何体传播即可,仅需要添加2行代码:

tab1.pack_propagate(False)
tab2.pack_propagate(False)

如果需要让选项卡区域占满整个窗口,还可以给ttk.Notebook的pack方法补充fill='both', expand=1参数。

修正后完整代码

from tkinter import *
from tkinter import ttk

root=Tk()
root.title('Tab Widget')
root.geometry('600x400')

book=ttk.Notebook(root)
book.pack(pady=2, fill='both', expand=1)

tab1=Frame(book,width=600,height=500,bg='white')
tab2=Frame(book,width=600,height=500,bg='white')

# 关闭几何体传播,保留预设宽高
tab1.pack_propagate(False)
tab2.pack_propagate(False)

book.add(tab1,text='Tab 1')
book.add(tab2,text='Tab 2')

heading=Label(tab1,text='This is Tab 1',font='arial 20 bold',bg='white')
heading2=Label(tab2,text='This is Tab 2',font='arial 20 bold',bg='white')

heading.pack() 
heading2.pack() 

root.mainloop()

内容的提问来源于stack exchange,提问作者ZARIR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:36:02