tkinter 应用程序中未显示 (Mac) 的 tkinter 菜单

tkinter menu not showing (Mac) in the tkinter app

我尝试用 tkinter 和 python 创建一个菜单。我使用的是最新的 Python,我使用的是最新的 Mac OS Monterey。

import tkinter as tk

class MainApp(tk.Frame):
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent, *args, **kwargs) 
        self.parent = parent   

        my_menu = tk.Menu(self.parent)
        self.parent.config(menu=my_menu)
        
        app_menu = tk.Menu(my_menu)
        my_menu.add_cascade(label="Options", menu=app_menu)
        app_menu.add_separator()
        app_menu.add_command(label="Exit", command=self.confirm_exit)
        
        self.label = tk.Label(self.parent, text="testing", pady=10, borderwidth=1) 
        self.label.pack(fill='both')
        
    def confirm_exit(self):
            self.parent.destroy()


def main():
    root = tk.Tk()
    app = MainApp(root)
    app.pack()
    root.mainloop()
       
if __name__ == "__main__":
    main()

菜单在屏幕顶部显示为 Mac 上的本机菜单栏。有什么方法可以将菜单栏添加到 Mac 上的 tkinter 应用程序本身?

The menu shows at the top of the screen as a native menubar on Mac. Is there any way you can add the menubar to the tkinter app itself on Mac?

不,没有,除非你使用 XQuartz 和 tkinter 的 X11 版本。菜单和菜单栏设计为原生 OSX 和 Windows。

您可以使用 Frame 和一些 Menubutton 小部件模拟菜单栏。但是,您仍然会在顶部看到菜单。