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

如何通过Frame设置固定窗口大小,避免内部组件影响Frame尺寸

解决方案

出现该现象的原因是tkinter容器组件默认开启了尺寸传播特性:只要容器内存在子组件,手动设置的width/height参数会被自动计算的子组件适配尺寸覆盖,要实现Frame固定尺寸不受内部组件影响,只需关闭对应布局的尺寸传播即可。

你当前代码中Frame内部使用pack布局放置子组件,只要在Frame配置尺寸后添加一行pack_propagate(False)即可:

import tkinter
from tkinter import ttk

root = tkinter.Tk()

s = ttk.Style()
s.configure('Login.TFrame', background='red')

login = ttk.Frame(root, style='Login.TFrame')
login.config(width=640, height=360)
# 关闭pack布局的尺寸传播,Frame固定使用手动设置的宽高
login.pack_propagate(False)

ttk.Button(login, text="Login").pack()

login.pack(expand=True, fill=tkinter.BOTH)

root.mainloop()

补充说明

  • 如果你后续改用grid布局放置Frame内部的子组件,把上面的pack_propagate(False)替换为grid_propagate(False)即可
  • 关闭尺寸传播后,如果内部组件的尺寸超过Frame的设定值,超出部分会被直接裁切,不会撑开Frame

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:27:00