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()
当我在 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()