【发布时间】:2011-10-31 05:50:09
【问题描述】:
MacOS 上的 Dock 存在问题。 在停靠图标的上下文菜单中有 2 个项目:MacOS 的标准退出和一些菜单项退出,我没有添加。 那个退出,不是我的,是有效的,并且与我的方法相关:
class TrayIcon(wx.TaskBarIcon):
def make_menu(self):
self.menu = wx.Menu()
item = self.menu.Append(wx.ID_EXIT,"Exit", "Exit from application")
self.menu.Bind(wx.EVT_MENU, self.on_menu_exit, item)
def CreatePopupMenu(self):
self.make_menu()
return self.menu
如你所见,我称之为“退出”,但我看到“退出”,但它仍然按我的方法处理。
退出即系统,它不起作用,当我选择它时,没有任何反应,但应用程序的下一步操作会导致此错误消息:
文件 “/var/tmp/wxWidgets/wxWidgets-13~231/2.6/DSTROOT/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode/wx/_core. py", 第 14501 行,在 getattr wx._core.PyDeadObjectError: The C++ part of Main 对象已被删除,不再允许属性访问。
我做错了什么? 谢谢
【问题讨论】:
-
您正在使用股票 ID wx.ID_EXIT(请参阅wiki.wxpython.org/SpecialIDs),因此 wxPython 正在更改菜单项的标签。您没有显示所有代码,所以我不确定
self.on_menu_exit会发生什么。您可能希望将该方法添加到您的问题中。 -
没什么有趣的,只是 > print "Quit clicked"
-
问题不在这里,问题是 on_menu_exit 没有被调用!
标签: python macos wxpython wxwidgets