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