我正在使用wxPython来显示一些菜单。我有一个带有menuitem参数的函数。然后我获取menuitem的父菜单,并遍历父菜单的菜单项列表以找到我原来的menuitem - 我需要这样,所以我可以在我给出的菜单项之后添加一个新的菜单项 - 插入例程使用整数位置。所以......
def SetMenu( self, menuSeparator ):
menu = menuSeparator.GetMenu()
for m in menu.GetMenuItems():
print m
print menuSeparator
print id(m), id(menuSeparator)
print m.GetText()
if m is menuSeparator:
print "Found MRU StartSeparator"
break
我的代码找不到原始项目。当我运行它时,我得到以下输出(修剪)......
<wx._core.MenuItem; proxy of <Swig Object of type 'wxMenuItem *' at 0x97387f8> >
<wx._core.MenuItem; proxy of <Swig Object of type 'wxMenuItem *' at 0x97387f8> >
157717676 157694924
<wx._core.MenuItem; proxy of <Swig Object of type 'wxMenuItem *' at 0x9738e58> >
<wx._core.MenuItem; proxy of <Swig Object of type 'wxMenuItem *' at 0x97387f8> >
157717292 157694924
_Redirect Output
第一个块显示我正在寻找的项目的调试,但它不匹配。菜单项似乎指向相同的底层对象,但指针是否不同?我怎么才能工作?
谢谢, 弗兰克