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

CustomTkinter:如何用place()实现Frame随窗口动态调整大小

用place()实现CTkFrame随窗口自适应调整

你用place()布局时没配置尺寸相关的相对参数,再加上给Frame固定了宽高,所以窗口拉伸时它不会跟着变化。改两处就能解决:

  1. 删掉CTkFrame的width=800和height=600(如果想保留窗口最小尺寸,给主窗口设置minsize即可)
  2. 在place()方法里添加relwidth=1和relheight=1,让Frame的尺寸占满父容器(主窗口)的100%

修改后的核心代码:

bgFrame = customtk.CTkFrame(app, fg_color="white")
bgFrame.place(relx=0.5, rely=0.5, anchor="center", relwidth=1, relheight=1)

如果想限制窗口不能小于初始的800x600,给主窗口加一行设置:

app.minsize(width=800, height=600)

另外,Frame内部的组件也要用相对布局才能跟着自适应。比如在Frame里放一个按钮,让它占Frame宽度的80%、高度的20%且居中:

btn = customtk.CTkButton(bgFrame, text="测试按钮")
btn.place(relx=0.5, rely=0.5, anchor="center", relwidth=0.8, relheight=0.2)

这样调整窗口大小时,Frame和内部组件都会自动适配新尺寸。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:34:58