How do I insert a menu item in an existing menu.

MRAB python at mrabarnett.plus.com
Wed Aug 26 18:12:58 EDT 2009


BlueFlash wrote:
> Idea:  Use of a RecentFileList, update element 0 with new file opened.
> 
> Appending a menu is easy
> menu.Append(-1, "Menu Name")
> 
> when I try to insert a new menu item
> menu.Insert(-1, position, "Menu Name")
> 
> does not work.
> 

The following comments are the result of a brief search of the web, so 
I'm not sure whether they're correct, but they might be worth a try.

> full code:
>     def addnew(self, position, path):
>         path = path.strip()
>         try:
>             self.filelist.index(path)     # index() throws ValueError
> if path does not exist.
>         except:
>             # ValueError, path is not in list, so add it:
>             if position >= len(self.filelist):
>                 self.filelist.append(path)
>                 item = self.menu.Append(-1, path)  #this does return a
> menu item
>                 self.window.Bind(wx.EVT_MENU, self.event, item)
>             else:
>                 self.filelist.insert(position, path)
>                 item = self.menu.InsertItem(-1, position, path) # does
> Not return a menu item.  throws some exception.

I think it should be:

     item = self.menu.InsertItem(position, -1, path)

>                 print item
>                 #self.window.Bind(wx.EVT_MENU, self.event, item)
> 
> 
> How do I remove a menu item from a menu?  The RecentUsedList is eg: 4
> element long.  When opening a new file, this should be added at the
> top, and the 4th element must be dropped.

I think you need the 'Remove' method.



More information about the Python-list mailing list