如果我在OS X上创建了一个tkinter菜单,并尝试使用add_comand()
向其添加菜单按钮,则菜单中不会显示任何内容。
如果以下代码在Ubuntu上运行,我会得到一个带有两个命令的菜单栏,标记为" Red"和"蓝"这会改变窗口的背景颜色。
在OS X 10.10.1(约塞米蒂)上,不显示按钮。我知道我可以使用红色和蓝色命令制作下拉菜单,但在我的真实应用程序中,我不想这样做。
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()
你能告诉我怎么做我想要的吗?
答案 0 :(得分:5)
我不认为你可以用OS X上的原生(" Aqua")Tk做到这一点,你可能不应该尝试。 OS X本机菜单不会那样工作,Tk会尝试关注Apple的Human Interface Guide for menus。你需要一个带有下拉列表的菜单栏 cascades 。
TkDocs
网站对Tk menus and their platform differences.有一个很好的介绍(你可以在OS X上使用基于X11的Tk,但不建议这样做,因为Apple不发货使用OS X的X11服务器和您的应用程序对于OS X用户来说看起来很奇怪。)