2015-02-20 5 views
0

Когда я запустил приложение wxPython в Mac OS X, пункт меню «Выход» в меню «Приложение» имеет метку «Quit Myapp», где myapp.py - это имя главный скрипт python. Если я переименую его, например, coolapp.py, ярлык в пункте меню станет «Quit Coolapp».Ярлык приложения Mac OS Quit так же, как имя скрипта python

Даже если я упакую приложение, используя py2app, хотя меню приложения изменяется с «Python» на имя, указанное в моем setup.py, пункт меню «Выход» остается неизменным.

Как я могу изменить этот пункт меню, чтобы использовать другое имя приложения? Есть ли способ использовать мост pyobjc с wxPython?

ответ

1

Как оказалось, PyObjC не требуется, и это можно сделать только с помощью wxPython.

Функция для вызова является SetAppName(name), но это должно быть сделано из методаOnInit(self):. Раньше я вызывал эту функцию после создания экземпляра приложения, и он ничего не делал.

Ваш код должен выглядеть следующим образом:

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()