首页 文章

如何使Menu.add_command()在Mac上的tkinter中工作?

提问于
浏览
6

如果我在OS X上创建一个tkinter菜单并尝试使用 add_comand() 添加菜单按钮,则菜单中不会显示任何内容 .

如果下面的代码在Ubuntu上运行,我会得到一个带有两个标记为“红色”和“蓝色”的命令的菜单栏,它们会改变窗口的背景颜色 .

在OS X 10.10.1(Yosemite)上,按钮不会出现 . 我知道我可以使用红色和蓝色命令制作一个下拉菜单,但在我的真实应用程序中,我宁愿不这样做 .

from platform import python_version_tuple

major = python_version_tuple()[0]

if major == '3':
    import tkinter as tk
else:
    import Tkinter as tk

root = tk.Tk()

fr = tk.Frame(root, height = 200, width = 200)
fr.pack()
menu = tk.Menu(root)
root.configure(menu=menu)
menu.add_command(label='Red', command=lambda:fr.configure(bg='red'))
menu.add_command(label='Blue', command=lambda:fr.configure(bg='blue'))

root.mainloop()

你能告诉我怎么做我想要的吗?

1 回答

  • 5

    我不试试.2530307 OS X本机菜单不需要't work like that and Tk tries to follow Apple' s Human Interface Guide for menus . 您需要一个带下拉级联的菜单栏 .

    TkDocs 网站对Tk menus and their platform differences.有一个很好的介绍(你可以在OS X上使用基于X11的Tk,但不建议这样做,因为Apple不再使用OS X发布X11服务器,你的应用程序看起来和行为奇怪的OS X用户 . )

相关问题