【问题标题】:Mac OS Quit Application menu label same as python script nameMac OS 退出应用程序菜单标签与 python 脚本名称相同
【发布时间】:2015-02-20 16:27:17
【问题描述】:
当我在 Mac OS X 中运行我的 wxPython 应用程序时,应用程序菜单下的“退出”菜单项具有标签“退出 Myapp”,其中 myapp.py 是主要 Python 脚本的名称。例如,如果我将其重命名为 coolapp.py,则菜单项上的标签将变为“退出 Coolapp”。
即使我使用 py2app 打包应用程序,虽然应用程序菜单从“Python”更改为我的setup.py 中指定的名称,但退出菜单项保持不变。
如何更改此菜单项以使用不同的应用程序名称?有什么方法可以将 pyobjc 桥与 wxPython 一起使用?
【问题讨论】:
标签:
python
macos
wxpython
py2app
pyobjc
【解决方案1】:
事实证明,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()