2
实际上,我认为tkinter窗口的大小与它需要的一样大。不幸的是,这对我来说并不正确(我使用Lubuntu 16.04)。tkinter程序的窗口大小
我的问题: 可以请某人向我解释下面的例子吗?我不明白tkinter的行为。
下面的例子:
import tkinter as tk
root = tk.Tk()
menubar = tk.Menu(root)
file_menu = tk.Menu(menubar)
menubar.add_cascade(label="This is a very long string because it's just a test . . . ", menu=file_menu)
file_menu.add_command(label="New", accelerator="Ctrl+N")
root.config(menu=menubar)
root.mainloop()
截图: 窗口不够大。为什么?
另一个例子(与容器框架):
import tkinter as tk
root = tk.Tk()
container = tk.Frame(root).pack()
menubar = tk.Menu(container)
file_menu = tk.Menu(menubar)
menubar.add_cascade(label="This is a very long string because it's just a test . . . ", menu=file_menu)
file_menu.add_command(label="New", accelerator="Ctrl+N")
root.config(menu=menubar)
root.mainloop()
截图:非常非常小!你无法真正看到它。但为什么是这样呢?
所以问题是菜单栏与窗口大小无关? – Aliquis
是的。该菜单与顶层相关联。它不是'内部'。 Tk文档提到了这一点(http://www.tcl.tk/man/tcl8.6/TkCmd/toplevel.htm#M11),在窗口上指出菜单是装饰的一部分,并由窗口框架管理。它在X11上有点不同,但'winfo_manager'会告诉你什么是管理每个部件。 – patthoyts