def OnRightClick(self, event):
tsubPopupID1 = 10
tsubPopupID2 = 11
tsubPopupID3 = 12
submenu = wx.Menu()
submenu.Append(tsubPopupID1, "Read")
submenu.Append(tsubPopupID2, "Unread")
submenu.Append(tsubPopupID3, "Deleted")
wx.EVT_MENU(self, tsubPopupID1, self.OnPopupMarkRead)
wx.EVT_MENU(self, tsubPopupID2, self.OnPopupMarkUnread)
wx.EVT_MENU(self, tsubPopupID3, self.OnPopupMarkDeleted)
menu = wx.Menu()
tPopupID0 = wx.NewId()
tPopupID1 = wx.NewId()
tPopupID2 = wx.NewId()
tPopupID3 = wx.NewId()
tPopupID4 = wx.NewId()
tPopupID5 = wx.NewId()
menu.AppendMenu(tPopupID1, "Mark as", submenu)
menu.AppendSeparator()
menu.Append(tPopupID2, "Edit")
menu.Append(tPopupID0, "New")
menu.Append(tPopupID1, "Copy")
menu.AppendSeparator()
menu.Append(tPopupID3, "Delete")
menu.Append(tPopupID4, "Delete All")
wx.EVT_MENU(self, tPopupID2, self.OnPopupEdit)
wx.EVT_MENU(self, tPopupID0, self.OnPopupNew)
wx.EVT_MENU(self, tPopupID1, self.OnPopupCopy)
wx.EVT_MENU(self, tPopupID3, self.OnPopupDelete)
wx.EVT_MENU(self, tPopupID4, self.OnPopupDeleteAll)
self.PopupMenu(menu, wx.Point(self.x, self.y))
menu.Destroy()
event.Skip()
python类Menu()的实例源码
def init_popup_menu(self):
self.popup_menu_needs_rebuild = False
if self.popup_menu is not None:
self.popup_menu.Destroy()
menu = wx.Menu()
menu.Append(wx.NewId(), 'Cursor mode:').Enable(False)
self.cursor_mode_to_eventID = {}
cmd_num = 1
for cursor_mode in self.popup_menu_cursor_modes:
fxn = self.available_cursor_modes[cursor_mode]['set-to-mode']
wx_id = wx.NewId()
menu.AppendCheckItem(wx_id, ' ' + cursor_mode + '\tCtrl+' + str(cmd_num))
wx.EVT_MENU(menu, wx_id, fxn)
self.cursor_mode_to_eventID[cursor_mode] = wx_id
self.Bind(wx.EVT_MENU, fxn, id=wx_id)
self.accelerator_table.append((wx.ACCEL_CMD, ord(str(cmd_num)), wx_id))
cmd_num += 1
menu.AppendSeparator()
image_cmap_submenu = wx.Menu()
for cmap in self.ztv_frame.available_cmaps:
menu_item = image_cmap_submenu.AppendCheckItem(self.cmap_to_eventID[cmap], cmap)
wx.EVT_MENU(image_cmap_submenu, self.cmap_to_eventID[cmap], self.on_change_cmap_event)
menu_item.SetBitmap(self.cmap_bitmaps[cmap])
menu.AppendMenu(-1, 'Color Maps', image_cmap_submenu)
wx_id = wx.NewId()
self.menu_item_invert_map = menu.AppendCheckItem(wx_id, 'Invert Color Map')
wx.EVT_MENU(menu, wx_id, self.ztv_frame.invert_cmap)
self.menu_item_invert_map.Check(self.ztv_frame.is_cmap_inverted)
image_scaling_submenu = wx.Menu()
for scaling in self.ztv_frame.available_scalings:
menu_item = image_scaling_submenu.AppendCheckItem(self.scaling_to_eventID[scaling], scaling)
wx.EVT_MENU(image_scaling_submenu, self.scaling_to_eventID[scaling], self.on_change_scaling_event)
menu.AppendMenu(-1, 'Scaling', image_scaling_submenu)
menu.AppendSeparator()
self.popup_menu_cur_fits_header_eventID = wx.NewId()
self._append_menu_item(menu, self.popup_menu_cur_fits_header_eventID, 'FITS Header',
self.on_display_cur_fits_header)
self.popup_menu = menu
self.SetAcceleratorTable(wx.AcceleratorTable(self.accelerator_table))
def init_popup_menu(self):
self.popup_menu_needs_rebuild = False
if self.popup_menu is not None:
self.popup_menu.Destroy()
menu = wx.Menu()
menu.Append(wx.NewId(), 'Cursor mode:').Enable(False)
self.cursor_mode_to_eventID = {}
cmd_num = 1
for cursor_mode in self.popup_menu_cursor_modes:
fxn = self.available_cursor_modes[cursor_mode]['set-to-mode']
wx_id = wx.NewId()
menu.AppendCheckItem(wx_id, ' ' + cursor_mode + '\tCtrl+' + str(cmd_num))
wx.EVT_MENU(menu, wx_id, fxn)
self.cursor_mode_to_eventID[cursor_mode] = wx_id
self.Bind(wx.EVT_MENU, fxn, id=wx_id)
self.accelerator_table.append((wx.ACCEL_CMD, ord(str(cmd_num)), wx_id))
cmd_num += 1
menu.AppendSeparator()
image_cmap_submenu = wx.Menu()
for cmap in self.ztv_frame.available_cmaps:
menu_item = image_cmap_submenu.AppendCheckItem(self.cmap_to_eventID[cmap], cmap)
wx.EVT_MENU(image_cmap_submenu, self.cmap_to_eventID[cmap], self.on_change_cmap_event)
menu_item.SetBitmap(self.cmap_bitmaps[cmap])
menu.AppendMenu(-1, 'Color Maps', image_cmap_submenu)
wx_id = wx.NewId()
self.menu_item_invert_map = menu.AppendCheckItem(wx_id, 'Invert Color Map')
wx.EVT_MENU(menu, wx_id, self.ztv_frame.invert_cmap)
self.menu_item_invert_map.Check(self.ztv_frame.is_cmap_inverted)
image_scaling_submenu = wx.Menu()
for scaling in self.ztv_frame.available_scalings:
menu_item = image_scaling_submenu.AppendCheckItem(self.scaling_to_eventID[scaling], scaling)
wx.EVT_MENU(image_scaling_submenu, self.scaling_to_eventID[scaling], self.on_change_scaling_event)
menu.AppendMenu(-1, 'Scaling', image_scaling_submenu)
menu.AppendSeparator()
self.popup_menu_cur_fits_header_eventID = wx.NewId()
self._append_menu_item(menu, self.popup_menu_cur_fits_header_eventID, 'FITS Header',
self.on_display_cur_fits_header)
self.popup_menu = menu
self.SetAcceleratorTable(wx.AcceleratorTable(self.accelerator_table))
def _InitRecordPaneMenu(self):
# make a menu
self.record_pane_menu = wx.Menu()
# Create IDs #
self.record_pane_popup_id1 = wx.NewId()
# Create Binds #
self.Bind(wx.EVT_MENU, self.RecordPaneMenu_ExtractClick, id=self.record_pane_popup_id1)
# Create Items #
self.record_pane_menu.Append(self.record_pane_popup_id1, "Extract")
def OnRightDown(self,event):
if IsNotWX4():
item = self.mainlist.HitTest(event.GetPosition())[0]
else:
item = self.mainlist.HitTest(event.GetPoint())[0]
if item > -1:
menu = wx.Menu()
if IsNotWX4():
self.CurrentListItem = event.m_itemIndex
else:
self.CurrentListItem = event.GetIndex()
itemup = wx.MenuItem(menu, wx.ID_UP, "Move up")
itemdel = wx.MenuItem(menu, wx.ID_DELETE, "Delete")
itemdown = wx.MenuItem(menu, wx.ID_DOWN, "Move Down")
if IsNotWX4():
menu.AppendItem(itemup)
menu.AppendItem(itemdel)
menu.AppendItem(itemdown)
else:
menu.Append(itemup)
menu.Append(itemdel)
menu.Append(itemdown)
self.Bind(wx.EVT_MENU, self.OnClickUp, itemup)
self.Bind(wx.EVT_MENU, self.OnItemDel, itemdel)
self.Bind(wx.EVT_MENU, self.OnClickDown, itemdown)
if IsNotWX4():
x,y = event.GetPosition()
else:
x,y = event.GetPoint().Get()
mx,my = self.hbox1.GetSize()
x= 3*mx/4
self.PopupMenu( menu, (x,y))
def __init__(self, parent, title):
self.dirname=os.getcwd()
wx.Frame.__init__(self, parent, title=title, size=(1000,700))
self.SetSizeHints(1000,700,-1,-1)
self.CreateStatusBar()
filemenu= wx.Menu()
menuOpen = filemenu.Append(wx.ID_OPEN, "&Open"," Open saved state")
menuSave = filemenu.Append(wx.ID_SAVE, "&Save"," Save current state")
filemenu.InsertSeparator(2)
menuNew = filemenu.Append(wx.ID_NEW, "&New"," Create new session")
filemenu.InsertSeparator(4)
menuExit = filemenu.Append(wx.ID_EXIT,"E&xit"," Terminate the program")
viewmenu = wx.Menu()
vismenu = wx.Menu()
self.viewmenuundock = vismenu.Append(wx.ID_ANY,"&Undock","Undock the visualisation")
self.viewmenuundock.Enable(0)
self.viewmenudock = vismenu.Append(wx.ID_ANY,"&Dock","Dock the visualisation")
self.viewmenudock.Enable(0)
self.Bind(wx.EVT_MENU, self.OnUndock, self.viewmenuundock)
self.Bind(wx.EVT_MENU, self.OnDock, self.viewmenudock)
if IsNotWX4():
viewmenu.AppendMenu(wx.ID_ANY,"&Visualisation", vismenu)
else:
viewmenu.Append(wx.ID_ANY,"&Visualisation", vismenu)
self.visualdialog_docked = True
editmenu = wx.Menu()
self.menuCWD = editmenu.Append(wx.ID_ANY, "Current Working &Directory","Current Working Directory")
self.Bind(wx.EVT_MENU, self.OnCWD, self.menuCWD)
helpmenu= wx.Menu()
menuAbout= helpmenu.Append(wx.ID_ABOUT, "&About"," Information about Bonsu")
menuDoc= helpmenu.Append(wx.ID_HELP, "&Contents","Documentation")
menuBar = wx.MenuBar()
menuBar.Append(filemenu,"&File")
menuBar.Append(viewmenu,"&View")
menuBar.Append(editmenu,"&Edit")
menuBar.Append(helpmenu,"&Help")
self.SetMenuBar(menuBar)
self.Bind(wx.EVT_MENU, self.OnOpen, menuOpen)
self.Bind(wx.EVT_MENU, self.OnSave, menuSave)
self.Bind(wx.EVT_MENU, self.OnNew, menuNew)
self.Bind(wx.EVT_MENU, self.OnExit, menuExit)
self.Bind(wx.EVT_MENU, self.OnAbout, menuAbout)
self.Bind(wx.EVT_MENU, self.OnHelp, menuDoc)
self.Bind(wx.EVT_CLOSE, self.OnExit)
self.fontpointsize=wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT).GetPointSize()
self.font = wx.Font(self.fontpointsize, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL)
self.SetFont(self.font)
icon = wx.Icon(os.path.join(os.path.dirname(os.path.dirname(__file__)), 'image', 'bonsu.ico'), wx.BITMAP_TYPE_ICO)
wx.Frame.SetIcon(self, icon)
self.nb = None
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.Fit()
self.Layout()
self.Show()
def __init__(self, parent, title):
(self.display_length_, self.display_height_) = wx.GetDisplaySize()
self.frame_width_ = self.display_length_ * 90 / 100
self.frame_height_ = self.display_height_ * 90 / 100
self.answer_panel_width_ = self.frame_width_ * 15 / 100
super(MainFrame, self).__init__(parent=parent, title=title, size=(self.frame_width_, self.frame_height_))
self.splitter = wx.SplitterWindow(parent=self, style=wx.SP_LIVE_UPDATE)
self.splitter.SetMinimumPaneSize(min=100)
self.web_panel = WebPanel(parent=self.splitter)
self.answer_panel = wx.Panel(parent=self.splitter)
self.answers_box = wx.BoxSizer(orient=wx.VERTICAL)
self.answers_box.Add(item=self.answer_panel)
self.splitter.SplitVertically(window1=self.answer_panel, window2=self.web_panel,
sashPosition=self.answer_panel_width_)
self.Sizer = wx.BoxSizer(orient=wx.VERTICAL)
self.Sizer.Add(item=self.splitter, proportion=CAN_CHANGE, flag=wx.EXPAND)
auto_answer_button = wx.Button(parent=self, label=u"????")
self.Bind(event=wx.EVT_BUTTON, handler=self.click_search_answer, source=auto_answer_button)
self.buttons_box = wx.BoxSizer(orient=wx.HORIZONTAL)
self.buttons_box.Add(item=auto_answer_button, proportion=CAN_NOT_CHANGE, flag=wx.LEFT | wx.RIGHT, border=5)
self.Sizer.Add(item=self.buttons_box, proportion=CAN_NOT_CHANGE, flag=wx.TOP | wx.BOTTOM, border=5)
menu = wx.Menu()
menu_about = menu.Append(id=wx.ID_ABOUT, text=u"&??", help=u" ?????")
menu_feedback = menu.Append(id=wx.ID_OPEN, text=u"&??", help=u" ??")
self.Bind(event=wx.EVT_MENU, handler=self.show_about, source=menu_about)
self.Bind(event=wx.EVT_MENU, handler=self.show_feedback, source=menu_feedback)
menu_bar = wx.MenuBar()
menu_bar.Append(menu, u"&??")
self.SetMenuBar(menu_bar)
self.statusbar = self.CreateStatusBar()
self.Centre()
def __init__(self, title, pos, size):
self.threads = []
self.getsession = []
self.MAC=''
self.IP=''
wx.Frame.__init__(self, None, -1, title, pos, size)
menuFile = wx.Menu()
menuFile.Append(1, u"&??...",u"?????")
menuFile.Append(3,u"&????",u"?????IP")
menuFile.AppendSeparator()
menuFile.Append(2,u"&Bug Report",u"???????bug?")
menuBar = wx.MenuBar()
menuBar.Append(menuFile, u"&??")
self.SetMenuBar(menuBar)
self.Bind(wx.EVT_MENU, self.OnAbout,id=1)
self.Bind(wx.EVT_MENU,self.OnBugReport,id=2)
hosts = self.Bind(wx.EVT_MENU,self.OnSet,id=3)
self.CreateStatusBar()
self.SetStatusText(u"????")
panel = wx.Panel(self)
self.connect = wx.Button(panel,label=u"??",pos=(240, 60),size=(80, 50))
self.disconnect = wx.Button(panel,label=u"??",pos=(330,60),size=(80,50))
self.connect.Disable()
self.disconnect.Disable()
self.Bind(wx.EVT_BUTTON, self.OnDisconnect,self.disconnect)
self.Bind(wx.EVT_BUTTON,self.OnConnect,self.connect)
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
wx.StaticText(panel, -1, u"???:", pos=(28, 40))
self.username = wx.TextCtrl(panel, -1 ,pos=(80, 40))
self.username.SetInsertionPoint(0)
self.Bind(wx.EVT_TEXT,self.Onuser,self.username)
wx.StaticText(panel,-1,u"??:",pos=(242,40))
self.pwd = wx.TextCtrl(panel, -1,pos=(280,40),style=wx.TE_PASSWORD |wx.TE_PROCESS_ENTER)
self.Bind(wx.EVT_TEXT,self.Onpwd,self.pwd)
wx.CheckBox(panel, -1, u"????", (20, 80), (150, 20))
wx.CheckBox(panel, -1, u"????", (110, 80), (150, 20))
def search_menu(self):
menu = wx.Menu()
menu.Append(wx.ID_ANY, "Recent searches").Enable(False)
for item in self.search_recent:
self.Bind(wx.EVT_MENU, handler=self.click_recent, source=menu.Append(wx.ID_ANY, item))
return menu
def __init__(self, parent, title):
wx.Frame.__init__(self, parent, -1, title, size=(550, 350))
self.SetBackgroundColour(wx.NamedColour("WHITE"))
self.figure = Figure()
self.axes = self.figure.add_subplot(111)
self.change_plot(0)
self.canvas = FigureCanvas(self, -1, self.figure)
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.add_buttonbar()
self.sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)
self.add_toolbar() # comment this out for no toolbar
menuBar = wx.MenuBar()
# File Menu
menu = wx.Menu()
menu.Append(wx.ID_EXIT, "E&xit\tAlt-X", "Exit this simple sample")
menuBar.Append(menu, "&File")
if IS_GTK or IS_WIN:
# Equation Menu
menu = wx.Menu()
for i, (mt, func) in enumerate(functions):
bm = mathtext_to_wxbitmap(mt)
item = wx.MenuItem(menu, 1000 + i, "")
item.SetBitmap(bm)
menu.AppendItem(item)
self.Bind(wx.EVT_MENU, self.OnChangePlot, item)
menuBar.Append(menu, "&Functions")
self.SetMenuBar(menuBar)
self.SetSizer(self.sizer)
self.Fit()
def CreatePopupMenu(self):
menu = wx.Menu()
if update_method:
create_menu_item(menu, _(u"Check for updates"), "update", self.manual_timer)
create_menu_item(menu, _(u"System update"), "upgrade", self.on_upgrade)
menu.AppendSeparator()
create_menu_item(menu, _(u"Help"), "help", self.on_about)
if self.shutdown_scheduled:
menu.AppendSeparator()
create_menu_item(menu, _(u"Cancel shutdown"), "cancel", self.on_cancleshutdown)
if allow_quit:
menu.AppendSeparator()
create_menu_item(menu, _(u"Close"), "quit", self.on_exit)
return menu
def CreatePopupMenu(self):
menu = wx.Menu()
if update_method:
create_menu_item(menu, _(u"Check for updates"), "update", self.manual_timer)
create_menu_item(menu, _(u"System update"), "upgrade", self.on_upgrade)
menu.AppendSeparator()
create_menu_item(menu, _(u"Help"), "help", self.on_about)
if self.shutdown_scheduled:
menu.AppendSeparator()
create_menu_item(menu, _(u"Cancel shutdown"), "cancel", self.on_cancleshutdown)
if allow_quit:
menu.AppendSeparator()
create_menu_item(menu, _(u"Close"), "quit", self.on_exit)
return menu
def _init_coll_DisplayMenu_Items(self, parent):
AppendMenu(parent, help='', id=wx.ID_REFRESH,
kind=wx.ITEM_NORMAL, text=_(u'Refresh') + '\tCTRL+R')
if self.EnableDebug:
AppendMenu(parent, help='', id=wx.ID_CLEAR,
kind=wx.ITEM_NORMAL, text=_(u'Clear Errors') + '\tCTRL+K')
parent.AppendSeparator()
zoommenu = wx.Menu(title='')
parent.AppendMenu(wx.ID_ZOOM_FIT, _("Zoom"), zoommenu)
for idx, value in enumerate(ZOOM_FACTORS):
new_id = wx.NewId()
AppendMenu(zoommenu, help='', id=new_id,
kind=wx.ITEM_RADIO, text=str(int(round(value * 100))) + "%")
self.Bind(wx.EVT_MENU, self.GenerateZoomFunction(idx), id=new_id)
parent.AppendSeparator()
AppendMenu(parent, help='', id=ID_PLCOPENEDITORDISPLAYMENUSWITCHPERSPECTIVE,
kind=wx.ITEM_NORMAL, text=_(u'Switch perspective') + '\tF12')
self.Bind(wx.EVT_MENU, self.SwitchFullScrMode, id=ID_PLCOPENEDITORDISPLAYMENUSWITCHPERSPECTIVE)
AppendMenu(parent, help='', id=ID_PLCOPENEDITORDISPLAYMENURESETPERSPECTIVE,
kind=wx.ITEM_NORMAL, text=_(u'Reset Perspective'))
self.Bind(wx.EVT_MENU, self.OnResetPerspective, id=ID_PLCOPENEDITORDISPLAYMENURESETPERSPECTIVE)
self.Bind(wx.EVT_MENU, self.OnRefreshMenu, id=wx.ID_REFRESH)
if self.EnableDebug:
self.Bind(wx.EVT_MENU, self.OnClearErrorsMenu, id=wx.ID_CLEAR)
def _init_utils(self):
self.MenuBar = wx.MenuBar()
self.FileMenu = wx.Menu(title='')
self.EditMenu = wx.Menu(title='')
self.DisplayMenu = wx.Menu(title='')
self.HelpMenu = wx.Menu(title='')
self._init_coll_MenuBar_Menus(self.MenuBar)
self._init_coll_FileMenu_Items(self.FileMenu)
self._init_coll_EditMenu_Items(self.EditMenu)
self._init_coll_DisplayMenu_Items(self.DisplayMenu)
self._init_coll_HelpMenu_Items(self.HelpMenu)
def OnQuitMenu(self, event):
self.Close()
# -------------------------------------------------------------------------------
# Edit Menu Functions
# -------------------------------------------------------------------------------
def OnSearchInProjectMenu(self, event):
dialog = SearchInProjectDialog(self)
if dialog.ShowModal() == wx.ID_OK:
criteria = dialog.GetCriteria()
if len(criteria) > 0:
result = self.Controler.SearchInProject(criteria)
self.ClearSearchResults()
self.SearchResultPanel.SetSearchResults(criteria, result)
self.SelectTab(self.SearchResultPanel)
# -------------------------------------------------------------------------------
# Display Menu Functions
# -------------------------------------------------------------------------------
def BuildStdIECTypesMenu(self, type_menu):
# build a submenu containing standard IEC types
base_menu = wx.Menu(title='')
for base_type in self.Controler.GetBaseTypes():
new_id = wx.NewId()
base_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=base_type)
self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(base_type), id=new_id)
type_menu.AppendMenu(wx.NewId(), _("Base Types"), base_menu)
def BuildUserTypesMenu(self, type_menu):
# build a submenu containing user-defined types
datatype_menu = wx.Menu(title='')
datatypes = self.Controler.GetDataTypes(basetypes=False, confnodetypes=False)
for datatype in datatypes:
new_id = wx.NewId()
datatype_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype)
self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(datatype), id=new_id)
type_menu.AppendMenu(wx.NewId(), _("User Data Types"), datatype_menu)
def BuildLibsTypesMenu(self, type_menu):
for category in self.Controler.GetConfNodeDataTypes():
if len(category["list"]) > 0:
# build a submenu containing confnode types
confnode_datatype_menu = wx.Menu(title='')
for datatype in category["list"]:
new_id = wx.NewId()
confnode_datatype_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=datatype)
self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(datatype), id=new_id)
type_menu.AppendMenu(wx.NewId(), category["name"], confnode_datatype_menu)
def BuildProjectTypesMenu(self, type_menu, classtype):
# build a submenu containing function block types
bodytype = self.Controler.GetEditedElementBodyType(self.TagName)
pouname, poutype = self.Controler.GetEditedElementType(self.TagName)
if classtype in ["Input", "Output", "InOut", "External", "Global"] or \
poutype != "function" and bodytype in ["ST", "IL"]:
functionblock_menu = wx.Menu(title='')
fbtypes = self.Controler.GetFunctionBlockTypes(self.TagName)
for functionblock_type in fbtypes:
new_id = wx.NewId()
functionblock_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=functionblock_type)
self.Bind(wx.EVT_MENU, self.GetVariableTypeFunction(functionblock_type), id=new_id)
type_menu.AppendMenu(wx.NewId(), _("Function Block Types"), functionblock_menu)