Tkinter菜单自发添加额外项目
我正在写一个Tkinter程序,目前已经创建了一个窗口,里面有一个菜单栏,一个文件菜单,以及一个菜单项。菜单成功创建了,但却多了一个我没有指定的项,名字是“-----”。
即使我不添加任何项,这个自动生成的项还是会出现。如果我设置了tearoff=0,这个情况依然存在。
有人知道这是为什么吗?
我的系统是Windows 11,使用的是Python 3.12.2,Tkinter和Tcl 8.6。
import tkinter as tk
window = tk.Tk()
window.geometry("800x600")
menubar = tk.Menu(window)
window.config(menu=menubar)
fileMenu = tk.Menu(menubar)
fileMenu.add_command(
label="Exit",
command=window.destroy,
)
menubar.add_cascade(label="File", menu=fileMenu, underline=0)
window.mainloop()
1 个回答
3
这样做是可以的。我觉得你把 tearoff=0
放在了 menubar
里,而不是放在 fileMenu
里。如果你把 tearoff=0
放在 menubar
里,它就不会影响到 fileMenu
。所以,你需要特别把 tearoff=0
放在特定的 tk.Menu()
里。
import tkinter as tk
window = tk.Tk()
window.geometry("800x600")
menubar = tk.Menu(window)
window.config(menu=menubar)
fileMenu = tk.Menu(menubar,tearoff=0)
fileMenu.add_command(
label="Exit",
command=window.destroy,
)
menubar.add_cascade(label="File", menu=fileMenu, underline=0)
window.mainloop()