【发布时间】:2017-02-06 18:23:21
【问题描述】:
我使用 tkinter 开发了一个相当大的 GUI。
调整大小时一切都很好,除了大幅降低窗口高度的情况。所有的框架都使用 'pack()' 放置。
GUI的基本垂直结构是(从上到下排序):
-
工具栏框架
self.frame_Toolbar=Frame(self.root, bg=colorBackground) self.frame_Toolbar.pack(side=TOP, fill=X) -
包含所有基本信息的中间框架
self.frame_Middle=Frame(self.root) self.frame_Middle.pack(side=TOP, fill=BOTH, expand=YES) -
状态栏
self.frame_Status=Frame(self.root, bg=colorStatus, bd=1, relief=SUNKEN) self.frame_Status.pack(side=BOTTOM, fill=X)
如果调整窗口大小,中间框架会放大,这很好,因为它是我想要的。
问题是当窗口高度降低很多时,状态栏会消失,因为中间框架适应了内部小部件。但是,我希望状态栏和工具栏都保持不变,即使隐藏一些小部件,中间框架也会尽可能减少。
总而言之,我希望工具栏和状态栏都具有最小高度。
这可能吗?
编辑:我添加了一个具有相同错误的功能性 MCVE 代码
# Import graphical interface
from tkinter import *
# Fixed window
root_fw=Tk()
# Toolbar
frame_Toolbar=Frame(root_fw, bg='red', height=50)
frame_Toolbar.pack(side=TOP, fill=X)
# Middle
frame_Middle=Frame(root_fw, bg='blue', height=300)
frame_Middle.pack(side=TOP, fill=BOTH, expand=YES)
# Status bar
frame_Status=Frame(root_fw, bg='green', bd=1, relief=SUNKEN, height=20)
frame_Status.pack(side=BOTTOM, fill=X)
root_fw.mainloop()
【问题讨论】:
-
您能否提供一个 MCVE (stackoverflow.com/help/mcve) 来重现您的问题?对我们来说,测试代码并提供答案会更容易。
-
我已经修改了提供具有相同问题的 MCVE 的问题。