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