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

如何让Tkinter中的Frame_1随窗口拉伸时贴合四角?

解决Tkinter窗口拉伸时LabelFrame无法贴合角落的问题

我刚接触Tkinter的时候也踩过类似布局的坑,咱们来一步步排查你的代码问题:

首先,你的核心需求是让labe1frame_1(顺带提一句,你拼写错啦,应该是labelFrame_1,把字母l写成数字1了)在窗口拉伸时贴合四个角落,目前代码里有几个关键的遗漏点:

问题分析

  • 你给window和labe1frame_1设置了rowconfigure和columnconfigure,但没有给tab1(也就是LabelFrame的父容器)做同样的配置,导致tab1不会随着tab_control的拉伸而扩展;
  • ScrolledText控件没有设置sticky=NSEW,所以即使LabelFrame扩展了,文本框也不会填充整个LabelFrame的空间;
  • 虽然tab_control设置了sticky=NSEW,但它的子元素tab1和tab2需要让父容器知道它们可以被拉伸。

修正后的代码

from tkinter import *
from tkinter import scrolledtext
from tkinter import ttk

window = Tk()
window.title("My Program")

# 给窗口设置行列权重,确保窗口拉伸时内部元素能跟随扩展
window.rowconfigure(0, weight=1)
window.columnconfigure(0, weight=1)

tab_control = ttk.Notebook(window)
tab_control.grid(row=0, column=0, sticky=NSEW)

tab1 = ttk.Frame(tab_control)
# 关键:给tab1设置行列权重,让它能跟随tab_control拉伸
tab1.rowconfigure(0, weight=1)
tab1.columnconfigure(0, weight=1)
tab1.grid(row=0, column=0, sticky=NSEW)  # 这里也要加sticky=NSEW

tab2 = ttk.Frame(tab_control)
tab2.grid(row=0, column=0)
tab_control.add(tab1, text='First')
tab_control.add(tab2, text='Second')

# 纠正拼写错误:labe1frame_1 → labelFrame_1
labelFrame_1 = LabelFrame(tab1, text="Frame_1")
labelFrame_1.grid(row=0, column=0, padx=10, pady=10, sticky=NSEW)
# 给LabelFrame设置行列权重
labelFrame_1.rowconfigure(0, weight=1)
labelFrame_1.columnconfigure(0, weight=1)

txtbox = scrolledtext.ScrolledText(labelFrame_1, width=40, height=10)
# 关键:给ScrolledText设置sticky=NSEW,让它填充LabelFrame的空间
txtbox.grid(row=0, column=0, sticky=NSEW)

window.mainloop()

关键修改点说明

  1. 给tab1添加行列权重和sticky=NSEW:因为tab1是labelFrame_1的直接父容器,只有让tab1能随着tab_control拉伸,内部的LabelFrame才有扩展的空间;
  2. 给ScrolledText添加sticky=NSEW:这个属性会让控件向上下左右四个方向填充父容器的空间,否则文本框只会保持固定大小;
  3. 纠正LabelFrame的拼写错误:虽然不影响功能,但规范的命名能避免后续维护时的混淆。

现在你再运行代码,拖拽窗口右下角拉伸时,Frame_1就会跟着窗口一起扩展,并且贴合四个角落啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:26:43