+++ /dev/null
-import wx
-
-class MyFrame(wx.Frame):
- def __init__(self):
- wx.Frame.__init__(self, None, -1,
- "Popup Menu Example")
- self.panel = p = wx.Panel(self)
- menu = wx.Menu()
- exit = menu.Append(-1, "Exit")
- self.Bind(wx.EVT_MENU, self.OnExit, exit)
-
- menuBar = wx.MenuBar()
- menuBar.Append(menu, "Menu")
- self.SetMenuBar(menuBar)
-
- wx.StaticText(p, -1,
- "Right-click on the panel to show a popup menu",
- (25,25))
-
- self.popupmenu = wx.Menu()
- for text in "one two three four five".split():
- item = self.popupmenu.Append(-1, text)
- self.Bind(wx.EVT_MENU, self.OnPopupItemSelected, item)
- p.Bind(wx.EVT_CONTEXT_MENU, self.OnShowPopup)
-
-
- def OnShowPopup(self, event):
- pos = event.GetPosition()
- pos = self.panel.ScreenToClient(pos)
- self.panel.PopupMenu(self.popupmenu, pos)
-
-
- def OnPopupItemSelected(self, event):
- item = self.popupmenu.FindItemById(event.GetId())
- text = item.GetText()
- wx.MessageBox("You selected item '%s'" % text)
-
-
- def OnExit(self, event):
- self.Close()
-
-
-if __name__ == "__main__":
- app = wx.PySimpleApp()
- frame = MyFrame()
- frame.Show()
- app.MainLoop()
-
-