非层叠类型的菜单栏项目在 Mac OSX 的 Tkinter 上不起作用
Non-cascade type menubar items not working on Tkinter with Mac OSX
我遇到了我认为可能是一个错误,每当我尝试在 mac 上的 tkinter 中制作菜单栏 (Menu
) 时,任何非级联类型的菜单项 --也就是说,menu.add_command
而不是 menu.add_cascade
-- 似乎不起作用。
import tkinter as tk
def callback():
print("Hello World")
root = tk.Tk()
menu = tk.Menu(root)
# Adding cascade
menu2 = tk.Menu(menu, tearoff=0)
menu2.add_command(label="CascadeItem", command=callback)
menu.add_cascade(menu=menu2, label="Cascade")
# Adding non-cascade
menu.add_command(label="NonCascade", command=callback)
root.config(menu=menu)
root.mainloop()
当我 运行 前面的代码时,我能够看到 "Cascade" 菜单项,但看不到 "NonCascade" 菜单项。
我这里有什么地方做错了吗?这是某种类型的错误吗?或者 mac 不支持菜单栏上的非级联类型菜单项?
你是对的:你不能在 OSX 上向菜单栏添加命令。没有解决方法。从可用性的角度来看,这是一个坏主意,因此 OSX 禁止它。
我遇到了我认为可能是一个错误,每当我尝试在 mac 上的 tkinter 中制作菜单栏 (Menu
) 时,任何非级联类型的菜单项 --也就是说,menu.add_command
而不是 menu.add_cascade
-- 似乎不起作用。
import tkinter as tk
def callback():
print("Hello World")
root = tk.Tk()
menu = tk.Menu(root)
# Adding cascade
menu2 = tk.Menu(menu, tearoff=0)
menu2.add_command(label="CascadeItem", command=callback)
menu.add_cascade(menu=menu2, label="Cascade")
# Adding non-cascade
menu.add_command(label="NonCascade", command=callback)
root.config(menu=menu)
root.mainloop()
当我 运行 前面的代码时,我能够看到 "Cascade" 菜单项,但看不到 "NonCascade" 菜单项。
我这里有什么地方做错了吗?这是某种类型的错误吗?或者 mac 不支持菜单栏上的非级联类型菜单项?
你是对的:你不能在 OSX 上向菜单栏添加命令。没有解决方法。从可用性的角度来看,这是一个坏主意,因此 OSX 禁止它。