【问题标题】:Tkinter code Works in Windows but not in MacTkinter 代码适用于 Windows 但不适用于 Mac
【发布时间】:2019-09-10 09:45:05
【问题描述】:

为什么在 Mojave 上运行 Python 3.7 的 Mac 上,以下测试不显示菜单?

尝试了shebang,但没有帮助。

import tkinter as tk

def quit_app():
    my_window.destroy()

    my_window = tk.Tk()
    my_menu = tk.Menu(my_window)
    my_menu.add_command(label='Quit',command=quit_app)
    my_window.config(menu=my_menu)
    my_window.mainloop()

菜单在 Windows 10 中显示,但在 Mac 上不显示。 tkinter 窗口在 Mac 上是空白的。

【问题讨论】:

标签: python tkinter python-3.7


【解决方案1】:

菜单在 Windows 10 中显示,但在 Mac 上不显示

是的,这是因为 MAC 的设计理念是其平台的所有开发人员都必须遵守的。 您不能将 add_command 作为 mac 上的顶级菜单项,而是:

import tkinter as tk

def quit_app():
    my_window.destroy()

my_window = tk.Tk()
my_menu = tk.Menu(my_window)
quit_menu= tk.Menu(my_menu, tearoff=0)
quit_menu.add_command(label='Quit App',command=quit_app)
my_menu.add_cascade(label="Quit", menu=quit_menu, underline=0)
my_window.config(menu=my_menu)
my_window.mainloop()

【讨论】:

  • 第 4 行,在 quit_menu.add_command(label='Quit App',command=quit_app) NameError: name 'quit_app' is not defined
  • 检查上面更新的代码格式。您没有定义 quit_app 函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-02
相关资源
最近更新 更多