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

ttk Frame填充异常:上下分栏布局需求实现求助

解决方案

修改后的代码如下:

import tkinter as tk
from tkinter import ttk

tk_root = tk.Tk()
tk_root.geometry('500x500')

frame_1 = ttk.Frame(tk_root, padding=10, borderwidth=3, relief=tk.GROOVE)
frame_2 = ttk.Frame(tk_root, padding=10, borderwidth=3, relief=tk.GROOVE)
frame_3 = ttk.Frame(tk_root, padding=10, borderwidth=3, relief=tk.GROOVE, height=50)
frame_4 = ttk.Frame(tk_root, padding=10, borderwidth=3, relief=tk.GROOVE, height=50)

# 前两个Frame填充上方所有可用空间,横竖双向扩展
frame_1.pack(fill=tk.BOTH, expand=True)
frame_2.pack(fill=tk.BOTH, expand=True)

# 后两个Frame仅横向填充,高度固定,不抢占额外空间
frame_3.pack(fill=tk.X, expand=False)
frame_4.pack(fill=tk.X, expand=False)

tk_root.mainloop()

关键修改说明

  • 针对Frame3、Frame4:移除expand=True,设置expand=False。原代码中expand=True会让这两个Frame抢占额外可用空间,导致高度无法固定且出现上下空白;修改后fill=tk.X保证横向填充窗口宽度,height=50的设置会完全生效。
  • 针对Frame1、Frame2:保留fill=tk.BOTH, expand=True,二者会自动平分Frame3、Frame4上方的所有剩余空间,实现横竖双向填充的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:26:04