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

B

BlueFlash

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.

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.
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.
 
M

MRAB

BlueFlash said:
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.
 
J

John Ladasky

You might want to direct your wxPython questions to the dedicated
wxPython newsgroup. It's Google-only, and thus not part of the Usenet
hierarchy. But it's the most on-topic newsgroup you will find.

http://groups.google.com/group/wxpython-users

I attempted to crosspost this article to wx-python users, but that
doesn't work for non-Usenet groups... Good luck!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,733
Messages
2,569,440
Members
44,832
Latest member
GlennSmall

Latest Threads

Top