Create popup menu
|
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()
app = wx.PySimpleApp() frame = MyFrame() frame.Show() app.MainLoop()
|
|
|
|
|