Python tkinter。如何获得菜单的高度
我正在尝试设置窗口的最小大小 我遵循了张贴在网站上的解决方案 然而,这并没有考虑到我菜单的高度 我的菜单代码是:Python tkinter。如何获得菜单的高度,python,menu,tkinter,height,size,Python,Menu,Tkinter,Height,Size,我正在尝试设置窗口的最小大小 我遵循了张贴在网站上的解决方案 然而,这并没有考虑到我菜单的高度 我的菜单代码是: menubar = tk.Menu(self) menu = tk.Menu(menubar, tearoff=0) menu.add_command(label="Change user name", \ command=self.prompt_new_name) menu.add_separator() menu.add_command(lab
menubar = tk.Menu(self)
menu = tk.Menu(menubar, tearoff=0)
menu.add_command(label="Change user name", \
command=self.prompt_new_name)
menu.add_separator()
menu.add_command(label="Exit", command=self.close_app)
menubar.add_cascade(label="Menu", menu=menu)
self.master.config(menu=menubar)
我设置最小尺寸的方式是:
master = self.master
master.update()
print(master.winfo_height())
print(menubar.winfo_height())
master.minsize(master.winfo_width(), master.winfo_height())
winfo_height()看起来像是返回窗口的高度,就好像没有菜单小部件一样。我尝试打印菜单栏的高度,但它返回1
如何获取包含菜单的窗口高度,或仅单独获取菜单高度,以便将其添加到master.winfo_height()中并将其设置为minsize?请阅读winfo_height()
和winfo_width()
的说明。
正如上面所说:
w、 winfo_高度()
[…]请参见上文.winfo_geometry()
下有关几何体更新的备注。您可能更喜欢使用下面介绍的.winfo_reqheight()
,它总是最新的
w、 winfo_reqheight()
这些方法返回小部件w的请求高度。这是使w的所有内容物具有所需空间所需的最小高度。由于与几何图形管理器协商,实际高度可能会有所不同
另外,请看一看。为什么您需要窗口与菜单一样高?这似乎是一个非常不寻常的要求。没有菜单那么高。我需要它不小于初始窗口大小,包括菜单和所有其他小部件。现在,由于master.winfo_height()不包括菜单的高度,我仍然可以将主窗口缩小,并且最底部的小部件被切断。只要使用
网格
和/或包
,窗口将始终足够大,可以容纳所有内容。没有理由设置最小尺寸。让tkinter帮你算出尺寸。我认为你在试图解决一个非问题。这对我来说是一个实际问题。我可以单击窗口的底部边框并向上移动鼠标,使窗口变小。然后底部的小部件被切断。我也遇到了同样的问题,窗口最初可能足够大,可以容纳所有内容,但它可以调整得更小,从而切断小部件(是的,我知道通常允许用户向自己的脚开枪,但我不是发号施令的人)。如果我使用master.minsize(master.winfo\u reqwidth(),master.winfo\u reqheight()+menu.winfo\u reqheight())设置minsize(在强制更新/update\u idletasks
之后),它可以正常工作,但它可以填充,其中一半不能缩小。