Mac OS 退出应用程序菜单标签与 python 脚本名称相同

Mac OS Quit Application menu label same as python script name

当我在 Mac OS X 中 运行 我的 wxPython 应用程序时,应用程序菜单下的 "Quit" 菜单项具有标签 "Quit Myapp",其中myapp.py 是主 python 脚本的名称。例如,如果我将其重命名为 coolapp.py,菜单项上的标签将变为 "Quit Coolapp"。

即使我使用 py2app 打包应用程序,虽然应用程序菜单从 'Python' 更改为我在 setup.py 中指定的名称,但退出菜单项保持不变。

如何更改此菜单项以使用不同的应用程序名称?有什么方法可以在 wxPython 中使用 pyobjc 桥吗?

事实证明,PyObjC 不是必需的,这只能从 wxPython 完成。

要调用的函数是SetAppName(name),但是这个必须从OnInit(self):方法中完成。以前我是在创建 App 实例后调用此函数,但它什么也没做。

您的代码应如下所示:

class MyApp(wx.App):
    def OnInit(self):
        # Set application name before anything else
        self.SetAppName("My App Name")
        mainframe = MyMainFrame(None, wx.ID_ANY, "")
        self.SetTopWindow(mainframe)
        mainframe.Show()
        return 1

if __name__ == '__main__':
    myapp = MyApp()
    myapp.MainLoop()