def __init__(self): wx.Frame.__init__(self, None, -1, "Accelerator Example") p = wx.Panel(self) menu = wx.Menu() simple = menu.Append(-1, "Simple &menu item") accel = menu.Append(-1, "&Accelerated\tCtrl-A") menu.AppendSeparator() exit = menu.Append(-1, "E&xit") self.Bind(wx.EVT_MENU, self.OnSimple, simple) self.Bind(wx.EVT_MENU, self.OnAccelerated, accel) self.Bind(wx.EVT_MENU, self.OnExit, exit) menuBar = wx.MenuBar() menuBar.Append(menu, "&Menu") self.SetMenuBar(menuBar) acceltbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('Q'), exit.GetId()) ]) self.SetAcceleratorTable(acceltbl)
def SetUpShortcuts(self): prevId = wx.NewId() nextId = wx.NewId() saveId = wx.NewId() self.Bind(wx.EVT_MENU, self.OnPrev, id=prevId) self.Bind(wx.EVT_MENU, self.OnNext, id=nextId) self.Bind(wx.EVT_MENU, self.OnSave, id=saveId) accel = wx.AcceleratorTable( [ (wx.ACCEL_NORMAL, ord("Q"), prevId), (wx.ACCEL_NORMAL, ord("E"), nextId), (wx.ACCEL_CTRL, ord("S"), saveId), ] ) self.SetAcceleratorTable(accel)
def InitFrame(self): menubar = wx.MenuBar() fileMenu = wx.Menu() editMenu = wx.Menu() # Make sizer and add panels to sizer to for auto-resizing sizer=wx.BoxSizer(wx.HORIZONTAL) self.apanel = PlotNotebook(self, id=-1, pos=(100,100), size=(300,300)) self.panel = MainPanel(self, id=wx.ID_ANY, pos=(0,100), size=(100,100)) sizer.Add(self.panel, 1, wx.EXPAND|wx.ALL, 5) #Build Menu oid = wx.NewId() aid = wx.NewId() ##FILE## #Open Option openitem = fileMenu.Append(wx.ID_ANY, "Open\tCtrl+O", "Open") #Bind Item self.Bind(wx.EVT_MENU, self.panel.onOpenFile, openitem) #Bind Keyboard Shortcut self.Bind(wx.EVT_MENU, self.panel.onOpenFile, id=oid) #Analyze Item analyzeitem = fileMenu.Append(wx.ID_ANY, "Analyze\tReturn", "Analyze") #Bind Item self.Bind(wx.EVT_MENU, self.panel.analyze, analyzeitem) #Bind Keyboard Shortcut self.Bind(wx.EVT_MENU, self.panel.analyze, id=aid) ##EDIT## #Change Channel Names self.channelname = editMenu.Append(wx.ID_ANY, "Set Channel Names", "Configure Channels") self.Bind(wx.EVT_MENU, self.panel.configchannelname, self.channelname) self.channelname.Enable(False) #Configure Rise and Fall Parameters self.timingparamconfig = editMenu.Append(wx.ID_ANY, "Configure Timing Parameter", "Configure Parameter") self.Bind(wx.EVT_MENU, self.panel.configtimingparam, self.timingparamconfig) self.timingthresholdconfig = editMenu.Append(wx.ID_ANY, "Configure Timing Threshold", "Configure Threshold") self.Bind(wx.EVT_MENU, self.panel.configtimingthreshold, self.timingthresholdconfig) menubar.Append(fileMenu, '&File') menubar.Append(editMenu, '&Edit') self.SetMenuBar(menubar) sizer.Add(self.apanel, 3, wx.ALIGN_TOP|wx.EXPAND, 0) self.accel_tbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('O'), oid)]) self.SetAcceleratorTable(self.accel_tbl) self.SetSizer(sizer)
def InitUI(self): self.panel = panel = FamilyTreePanel(self) self.statusbar = self.CreateStatusBar() sizer = wx.BoxSizer() sizer.Add(panel, 1, wx.EXPAND) self.SetSizer(sizer) exitID = wx.NewId() self.Bind(wx.EVT_MENU, self.OnBack,id=exitID) accel_tbl = wx.AcceleratorTable([(wx.ACCEL_CMD, ord('W'), exitID)]) self.SetAcceleratorTable(accel_tbl) self.Bind(wx.EVT_BUTTON, self.OnBack, self.panel.back) self.Bind(wx.EVT_BUTTON, self.OnPlus, self.panel.plus) self.Bind(wx.EVT_BUTTON, self.OnMinus, self.panel.minus) self.Bind(wx.EVT_SIZE, self.OnSize)
def createMenuItem(self, menu, label, status, handler, key_code, flags=wx.ACCEL_CTRL, kind=wx.ITEM_NORMAL): if not label: menu.AppendSeparator() return menuItem = menu.Append(-1, label, status, kind) self.Bind(wx.EVT_MENU, handler, menuItem) if key_code: acceltbl = wx.AcceleratorTable([(flags, ord(key_code), menuItem.GetId())]) self.SetAcceleratorTable(acceltbl)
def __init__(self, parent=None, attrpanel=None, frame=None, id=-1, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.BORDER, name="ShapeCanvas"): wx.ScrolledWindow.__init__(self, parent, id, pos, size, style, name) self.attrpanel = attrpanel self.frame = frame wx.EVT_PAINT(self, self.OnPaint) wx.EVT_MOUSE_EVENTS(self, self.OnMouseEvent) self.Bind(wx.EVT_KEY_DOWN, self.OnKeyPressed) self.Bind(wx.EVT_KEY_UP, self.OnKeyUp) self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) self.curselshapelist = [] self.curselshape = None self.hotshape = None self.cureditshape = None self.isdragging = False self.startdragpos = [0, 0] self.dragseltype = SEL_NONE self.cmdhdr = None self.SetBackgroundColour("LIGHT BLUE") self.oneMoveKeyTrunkStart = False self.oneMoveKeyTrunkCmdObj = None self.cmdhdr = CommandHandler(self) self.copiedshapes = [] self.delayUpdateAttrTimer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.OnDelayUpdateAttrTimer, self.delayUpdateAttrTimer) acceltbl = wx.AcceleratorTable([ (wx.ACCEL_CTRL, ord('Z'), 20001), #MENU_UNDO (wx.ACCEL_CTRL, ord('Y'), 20002), #MENU_REDO (wx.ACCEL_CTRL, ord('C'), 20017), #MENU_COPY (wx.ACCEL_CTRL, ord('V'), 20018) #MENU_PASTE ]) self.SetAcceleratorTable(acceltbl) global g_shapetree g_shapetree = self.frame.GetShapeTree()
def __init__(self, parent, id=wx.ID_ANY): wx.Dialog.__init__(self, parent, id, "DNS Manager", style=wx.DEFAULT_DIALOG_STYLE | wx.TAB_TRAVERSAL) vs = wx.BoxSizer(wx.VERTICAL) self.dnsManager = DNSManager(self) self.dnsManager.SetMinSize((700, 500)) vs.Add(self.dnsManager, 1, flag=wx.ALL | wx.EXPAND, border=4) self.helpBtn = wx.Button(self, label=_('&Help')) self.Bind(wx.EVT_BUTTON, self.onHelp, self.helpBtn) self.closeBtn = wx.Button(self, label=_('&Close (Ctrl-Q)')) self.Bind(wx.EVT_BUTTON, self.onClose, self.closeBtn) self.Bind(wx.EVT_CLOSE, self.onClose) hs = wx.BoxSizer(wx.HORIZONTAL) hs.AddStretchSpacer() hs.Add(self.helpBtn, flag=wx.ALL | wx.ALIGN_RIGHT, border=4) hs.Add(self.closeBtn, flag=wx.ALL | wx.ALIGN_RIGHT, border=4) vs.Add(hs, flag=wx.EXPAND) self.SetSizerAndFit(vs) vs.Fit(self) # Add Ctrl-Q to close the dialog. self.Bind(wx.EVT_MENU, self.onClose, id=wx.ID_CLOSE) self.Bind(wx.EVT_MENU, self.onUndo, id=wx.ID_UNDO) self.Bind(wx.EVT_MENU, self.onRedo, id=wx.ID_REDO) accel_tbl = wx.AcceleratorTable([ (wx.ACCEL_CTRL, ord('Q'), wx.ID_CLOSE), (wx.ACCEL_CTRL, ord('Z'), wx.ID_UNDO), (wx.ACCEL_CTRL, ord('Y'), wx.ID_REDO), ]) self.SetAcceleratorTable(accel_tbl) self.CentreOnParent(wx.BOTH) wx.CallAfter(self.SetFocus) wx.CallAfter(self.dnsManager.refresh)
def create_actions(self): """define what can be done in this screen """ accel_list = [] self.actionlist = ((_('a_from'), 'Ctrl+L', self.activate_left), (_('b_tag'), 'Ctrl+Right', self.move_right), (_('a_to'), 'Ctrl+R', self.activate_right), (_('b_untag'), 'Ctrl+Left', self.move_left), (_('b_newtag'), 'Ctrl+N', self.add_trefw)) for name, shortcut, callback in self.actionlist: act = wx.MenuItem(id=wx.NewId(), text=name) act.Bind(wx.EVT_MENU, callback) accel = wx.AcceleratorEntry(cmd=act.GetId()) ok = accel.FromString(shortcut) if ok: accel_list.append(accel) accel_table = wx.AcceleratorTable(accel_list) self.SetAcceleratorTable(accel_table)
def _bindUserStop(self): # if standalone, no binding can be done windows = [wx.GetTopLevelParent(self)] if not self.IsStandalone(): windows.append(self.giface.lmgr) windows.extend([mapw for mapw in self.giface.GetAllMapDisplays()]) bindings = {"stopTask": self.OnUserStop, 'scanOnce': self.OnScanOnce, 'taskNext': self.OnNextTask, 'taskPrevious': self.OnPreviousTask, 'startTask': self.StartAutomated} if "keyboard_events" in self.configuration: items = [] for eventName in self.configuration['keyboard_events']: eventId = wx.NewId() items.append((wx.ACCEL_NORMAL, self.configuration['keyboard_events'][eventName], eventId)) for win in windows: win.Bind(wx.EVT_MENU, bindings.get(eventName, lambda evt: self.CustomAction(eventName)), id=eventId) accel_tbl = wx.AcceleratorTable(items) for win in windows: win.SetAcceleratorTable(accel_tbl)
def InitUI(self): self.panel = AddNewCagePanel(self) self.sizer = sizer = wx.BoxSizer() sizer.Add(self.panel, 1, wx.EXPAND) self.SetSizer(sizer) exitID = wx.NewId() self.Bind(wx.EVT_MENU, self.OnCancel, id=exitID) accel_tbl = wx.AcceleratorTable([(wx.ACCEL_CMD, ord('W'), exitID)]) self.SetAcceleratorTable(accel_tbl) self.panel.add.Bind(wx.EVT_BUTTON, self.OnAdd) self.panel.can.Bind(wx.EVT_BUTTON, self.OnCancel) self.Bind(wx.EVT_TEXT, self.OnChange, self.panel.house) self.Bind(wx.EVT_TEXT, self.OnChange, self.panel.cmin) self.Bind(wx.EVT_TEXT, self.OnChange, self.panel.cmax)
def _updateAcceleratorTables(self): # Key - window, value - list of the wx.AcceleratorEntry instances entries = {} for actionInfo in self._actionsInfo.values(): if actionInfo.hotkeyId is not None: assert actionInfo.hotkey is not None entry = wx.AcceleratorEntry(cmd=actionInfo.hotkeyId) entry.FromString(str(actionInfo.hotkey)) if entry.IsOk(): if actionInfo.window not in entries: entries[actionInfo.window] = [] entries[actionInfo.window].append(entry) for window in entries.keys(): accelTable = wx.AcceleratorTable(entries[window]) window.SetAcceleratorTable(accelTable)
def __create_accel(self): """Create accelerated table for menu.""" acceltbl = wx.AcceleratorTable([ (wx.ACCEL_CTRL, ord('N'), self.drawer.create_child.GetId()), (wx.ACCEL_CTRL, ord('S'), self.drawer.save_note.GetId()), (wx.ACCEL_CTRL, ord('Q'), self.drawer.exit.GetId()), (wx.ACCEL_CTRL, ord('Z'), self.drawer.undo.GetId()), (wx.ACCEL_CTRL, ord('Y'), self.drawer.redo.GetId()), (wx.ACCEL_CTRL, wx.WXK_UP, self.drawer.order_up.GetId()), (wx.ACCEL_CTRL, wx.WXK_DOWN, self.drawer.order_down.GetId()), (wx.ACCEL_CTRL | wx.ACCEL_SHIFT, wx.WXK_UP, self.drawer.order_parent_up.GetId()), (wx.ACCEL_CTRL | wx.ACCEL_SHIFT, wx.WXK_DOWN, self.drawer.order_parent_down.GetId()), (wx.ACCEL_CTRL, ord('I'), self.drawer.count_total.GetId()), (wx.ACCEL_CTRL, ord('O'), self.drawer.options.GetId()), ]) self.drawer.SetAcceleratorTable(acceltbl)
def bindKeyShortcuts(self): self.canvas.Bind(wx.EVT_KEY_DOWN, self.OnDwnKeyPress) self.canvas.Bind(wx.EVT_KEY_UP, self.OnUpKeyPress) self.canvas.Bind(wx.EVT_ENTER_WINDOW, self.ChangeCursor) # Create an accelerator table myKeyId_1 = wx.NewId() myKeyId_2 = wx.NewId() self.Bind(wx.EVT_MENU, self.onCtrlShiftF1, id=myKeyId_1) self.Bind(wx.EVT_MENU, self.onShiftAltY, id=myKeyId_2) accel_tbl = wx.AcceleratorTable([ (wx.ACCEL_SHIFT | wx.ACCEL_CTRL, wx.WXK_F1, myKeyId_1), (wx.ACCEL_SHIFT | wx.ACCEL_ALT, ord('Y'), myKeyId_2) ]) self.SetAcceleratorTable(accel_tbl)
def __init__(self, frame, ceciliaEditor): MainMenuBar.__init__(self, frame, ceciliaEditor) self.isEditor = True accel_tbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, wx.WXK_UP, ID_UPPER_POWER2), (wx.ACCEL_CTRL, wx.WXK_DOWN, ID_LOWER_POWER2), (wx.ACCEL_CTRL, ord('L'), ID_INSERT_PATH), (wx.ACCEL_CTRL, ord('T'), ID_OPEN_CSD), (wx.ACCEL_CTRL|wx.ACCEL_SHIFT, ord('T'), ID_OPEN_LOG), (wx.ACCEL_CTRL, ord('U'), 2012)]) self.ceciliaEditor.SetAcceleratorTable(accel_tbl) self.buildFileMenu() self.buildEditMenu() self.buildFormatMenu() self.buildCsoundMenu() self.buildWindowMenu() self.buildHelpMenu() self.buildMenuBar()
def __init__(self, *args, **kwargs): """ Constructor. """ super(CarberryPanelGauges, self).__init__(*args, **kwargs) # Background image image = wx.Image(BACKGROUND) width, height = wx.GetDisplaySize() image = image.Scale(width, height, wx.IMAGE_QUALITY_HIGH) self.bitmap = wx.BitmapFromImage(image) self.Bind(wx.EVT_PAINT, self.on_paint) # Create an accelerator table for controls lid = wx.NewId() cid = wx.NewId() rid = wx.NewId() self.Bind(wx.EVT_MENU, self.on_ctrl_c, id=cid) self.Bind(wx.EVT_MENU, self.on_left, id=lid) self.Bind(wx.EVT_MENU, self.on_right, id=rid) self.accelerator_table = wx.AcceleratorTable([ (wx.ACCEL_CTRL, ord('C'), cid), (wx.ACCEL_NORMAL, wx.WXK_LEFT, lid), (wx.ACCEL_NORMAL, wx.WXK_RIGHT, rid), ]) self.SetAcceleratorTable(self.accelerator_table) # Handle events for mouse clicks - to be replaced with touchscreen events self.Bind(wx.EVT_LEFT_DOWN, self.on_left) self.Bind(wx.EVT_RIGHT_DOWN, self.on_right) # Connection self.connection = None # Sensors self.istart = 0 self.sensors = [] # Port self.port = None # List to hold children widgets self.boxes = [] self.texts = []
def __init__(self, parent, ID, title): style = wx.CAPTION | wx.SYSTEM_MENU | wx.CLOSE_BOX | \ wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.RESIZE_BORDER | wx.FRAME_NO_TASKBAR size = parent.GetSize() wx.Dialog.__init__(self, parent, ID, title, pos=parent.GetScreenPosition(), size=size, style=style) # need this to enable validation in all subwindows self.SetExtraStyle(wx.WS_EX_VALIDATE_RECURSIVELY) self.SetMinSize(size) self.leftPanel = wx.Panel(self, -1, style=wx.BORDER_SUNKEN) self.rightPanel = wx.Panel(self, -1, style=wx.BORDER_SUNKEN) hbox = wx.BoxSizer(wx.HORIZONTAL) hbox.Add(self.leftPanel, 1, wx.ALL | wx.EXPAND, 0) hbox.Add(self.rightPanel, 1, wx.ALL | wx.EXPAND, 0) self.testresultview = trTestresultPanel(self.rightPanel, viewonly=False) self.testcaseview = trTestcasePanel(self.leftPanel, viewonly=False) self.Bind(hl.EVT_HYPERLINK_LEFT, self.OnRunScript) btnsizer = wx.StdDialogButtonSizer() btn = wx.Button(self, wx.ID_SAVE) at = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('S'), wx.ID_SAVE)]) self.SetAcceleratorTable(at) self.SetAffirmativeId(wx.ID_SAVE) btn.SetDefault() btnsizer.AddButton(btn) btn = wx.Button(self, wx.ID_CANCEL) btnsizer.AddButton(btn) btnsizer.Realize() sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(hbox, 1, wx.ALL | wx.EXPAND, 6) sizer.Add(btnsizer, 0, wx.ALIGN_RIGHT | wx.ALL, 5) self.SetSizer(sizer) self.Layout()
def __init__(self, *args, **kwargs): """ Constructor. """ super(OBDPanelGauges, self).__init__(*args, **kwargs) # Background image image = wx.Image(GAUGE_FILENAME) width, height = wx.GetDisplaySize() image = image.Scale(width, height, wx.IMAGE_QUALITY_HIGH) self.bitmap = wx.BitmapFromImage(image) self.Bind(wx.EVT_PAINT, self.OnPaint) # Create an accelerator table lid = wx.NewId() cid = wx.NewId() rid = wx.NewId() self.Bind(wx.EVT_MENU, self.onCtrlC, id=cid) self.Bind(wx.EVT_MENU, self.onLeft, id=lid) self.Bind(wx.EVT_MENU, self.onRight, id=rid) self.accel_tbl = wx.AcceleratorTable([ (wx.ACCEL_CTRL, ord('C'), cid), (wx.ACCEL_NORMAL, wx.WXK_LEFT, lid), (wx.ACCEL_NORMAL, wx.WXK_RIGHT, rid), ]) self.SetAcceleratorTable(self.accel_tbl) # Handle events for mouse clicks self.Bind(wx.EVT_LEFT_DOWN, self.onLeft) self.Bind(wx.EVT_RIGHT_DOWN, self.onRight) # Connection self.connection = None # Sensors self.istart = 0 self.sensors = [] # Port self.port = None # List to hold children widgets self.boxes = [] self.texts = []
def initAccels(self): self.accelTableList = [ (wx.ACCEL_NORMAL, ord('0'), Menu_ZoomReset), (wx.ACCEL_NORMAL, ord('9'), Menu_ZoomCenter), (wx.ACCEL_NORMAL, ord('d'), Menu_Zoom2x), (wx.ACCEL_NORMAL, ord('h'), Menu_Zoom_5x), #(wx.ACCEL_NORMAL, ord('c'), Menu_Color), (wx.ACCEL_NORMAL, ord('r'), Menu_Reload), #(wx.ACCEL_NORMAL, ord('o'), Menu_chgOrig), #(wx.ACCEL_NORMAL, ord('g'), Menu_grid), (wx.ACCEL_NORMAL, ord('b'), Menu_noGfx), #(wx.ACCEL_CTRL, ord('c'), Menu_SaveClipboard), (wx.ACCEL_NORMAL, wx.WXK_HOME, Menu_ZoomCenter), (wx.ACCEL_NORMAL, wx.WXK_PAGEDOWN, Menu_ZoomOut), (wx.ACCEL_NORMAL, wx.WXK_PAGEUP, Menu_ZoomIn), #(wx.ACCEL_NORMAL, wx.WXK_NEXT, Menu_ZoomOut), #(wx.ACCEL_NORMAL, wx.WXK_PRIOR,Menu_ZoomIn), (wx.ACCEL_CTRL, wx.WXK_LEFT, 1051), (wx.ACCEL_CTRL, wx.WXK_RIGHT, 1052), (wx.ACCEL_CTRL, wx.WXK_UP, 1053), (wx.ACCEL_CTRL, wx.WXK_DOWN, 1054), (wx.ACCEL_ALT, ord('0'), Menu_ZoomReset), (wx.ACCEL_ALT, ord('9'), Menu_ZoomCenter), (wx.ACCEL_ALT, ord('d'), Menu_Zoom2x), (wx.ACCEL_ALT, ord('h'), Menu_Zoom_5x), #(wx.ACCEL_ALT, ord('c'), Menu_Color), (wx.ACCEL_ALT, ord('r'), Menu_Reload), #(wx.ACCEL_ALT, ord('o'), Menu_chgOrig), #(wx.ACCEL_ALT, ord('g'), Menu_grid), (wx.ACCEL_ALT, ord('b'), Menu_noGfx), (wx.ACCEL_ALT, wx.WXK_HOME, Menu_ZoomCenter), (wx.ACCEL_ALT, wx.WXK_PAGEDOWN, Menu_ZoomOut), (wx.ACCEL_ALT, wx.WXK_PAGEUP, Menu_ZoomIn) # (wx.ACCEL_ALT, wx.WXK_NEXT, Menu_ZoomOut), # (wx.ACCEL_ALT, wx.WXK_PRIOR, Menu_ZoomIn) ] ## WXK_NEXT is page-down key ## WXK_PRIOR is page-up key self.accelTableList_default = list( self.accelTableList) # backup for later resetting _at = wx.AcceleratorTable(self.accelTableList) self.SetAcceleratorTable(_at)
def onPageChanged(self, e): if self.ignorePageChanged: return selection = e.GetSelection() page = self.nbctl.GetPage(selection) doc = self.documents[selection] oldDoc = self.documents[ self.oldSelection] if self.oldSelection >= 0 else None self.oldSelection = selection project, oldProject = doc.project, oldDoc.project if oldDoc else None self.updateWindowTitle(doc) menubar = self.GetMenuBar() docMenus = doc.getSpecificMenus() oldDocMenus = oldDoc.getSpecificMenus() if oldDoc else () if oldDocMenus != docMenus: doc.acceleratorTable = [] MenuManager.spliceMenus(menubar, 2, len(oldDocMenus), docMenus, doc.acceleratorTable) if oldProject != project: projMenus = project.getSpecificMenus() if project else () oldProjMenus = oldProject.getSpecificMenus() if oldProject else () if oldProjMenus != projMenus: project.acceleratorTable = [] MenuManager.spliceMenus(menubar, 2 + len(docMenus), len(oldProjMenus), projMenus, project.acceleratorTable) MenuManager.replaceItems(menubar.GetMenu(0), len(FILE_MENU), -1, doc.getFileMenuSpecificItems(), doc.acceleratorTable) MenuManager.replaceItems(menubar.GetMenu(1), len(EDIT_MENU), None, doc.getEditMenuSpecificItems(), doc.acceleratorTable) for name, id in EDIT_MENU: menubar.Enable( id, hasattr(doc, name) and callable(getattr(doc, name)) and doc.canDo(id)) for name, id in FILE_MENU: menubar.Enable(id, doc.canDo(id)) menubar.Refresh() page.SetAcceleratorTable( wx.AcceleratorTable(doc.acceleratorTable + (project.acceleratorTable if project else []))) doc.onFocus()
def __init__(self, parent, raw_header_str, caption, pos=wx.DefaultPosition, size=(500,300), style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER): self.parent = parent wx.Dialog.__init__(self, parent, -1, caption, pos, size, style) x, y = pos if x == -1 and y == -1: self.CenterOnScreen(wx.BOTH) self.cur_selection = (0, 0) self.raw_header_str = raw_header_str self.raw_header_str_lower = raw_header_str.lower() self.text = text = wx.TextCtrl(self, -1, raw_header_str, style=wx.TE_MULTILINE | wx.TE_READONLY) font1 = wx.Font(12, wx.FONTFAMILY_MODERN, wx.NORMAL, wx.FONTWEIGHT_LIGHT, False) self.text.SetFont(font1) self.text.SetInitialSize((600,400)) main_sizer = wx.BoxSizer(wx.VERTICAL) main_sizer.Add(self.text, 1, wx.EXPAND | wx.ALL, border=5) ok = wx.Button(self, wx.ID_OK, "OK") ok.SetDefault() ok.Bind(wx.EVT_BUTTON, self.on_close) buttons_sizer = wx.BoxSizer(wx.HORIZONTAL) self.search = wx.SearchCtrl(self, size=(200, -1), style=wx.TE_PROCESS_ENTER) self.search.ShowSearchButton(True) self.search.ShowCancelButton(True) # TODO: make layout of search & OK button prettier (OK should be right-aligned properly) buttons_sizer.Add(self.search, 0, wx.ALL | wx.EXPAND) buttons_sizer.Add((315, 0), 1, wx.EXPAND) buttons_sizer.Add(ok, 0, wx.ALL) main_sizer.Add(buttons_sizer, 0, wx.ALL, border=4) self.SetSizerAndFit(main_sizer) self.set_cur_selection() self.Bind(wx.EVT_SEARCHCTRL_SEARCH_BTN, self.on_search, self.search) self.Bind(wx.EVT_TEXT_ENTER, self.on_search, self.search) self.last_search_str = '' self.last_find_index = 0 self.is_dialog_still_open = True self.Bind(wx.EVT_CLOSE, self.on_close) new_id = wx.NewId() self.Bind(wx.EVT_MENU, self.on_cmd_w, id=new_id) self.SetAcceleratorTable(wx.AcceleratorTable([(wx.ACCEL_CMD, ord(str('w')), new_id)]))
def _bind(self): for btn in self.buttons: btn.Bind(wx.EVT_ENTER_WINDOW, self.OnEnter) btn.Bind(wx.EVT_LEAVE_WINDOW, self.OnLeave) btn.Bind(wx.EVT_SET_FOCUS, self.OnEnter) btn.Bind(wx.EVT_KILL_FOCUS, self.OnLeave) self.Bind(wx.EVT_BUTTON, self.OnBotton, btn) self.Bind(wx.EVT_PAINT, self.OnPaint) self.Bind(wx.EVT_RIGHT_UP, self.OnCancel) for ctrl in itertools.chain(self.GetChildren(), self.panel.GetChildren()): ctrl.Bind(wx.EVT_RIGHT_UP, self.OnCancel) backid = wx.NewId() # 効果音を鳴らすためIDCANCELではなく別定義 self.Bind(wx.EVT_MENU, self.OnCancel, id=backid) seq = [ (wx.ACCEL_NORMAL, wx.WXK_BACK, backid), (wx.ACCEL_NORMAL, ord('_'), backid)] accel = wx.AcceleratorTable(seq) self.SetAcceleratorTable(accel)
def __init__(self, parent): wx.Panel.__init__(self, parent) parent.ToggleWindowStyle(wx.STAY_ON_TOP) # 窗口置顶方便拖拽文件 sampleList = ['原文', '对比', '差异', '压缩'] st1 = wx.StaticText(self, -1, '') st2 = wx.StaticText(self, -1, '') st3 = wx.StaticText(self, -1, '产生结果:') ch1 = wx.Choice(self, -1, choices=sampleList) self.cb1 = wx.CheckBox(self, -1, '提取') self.cb2 = wx.CheckBox(self, -1, '追加') bt1 = wx.Button(self, label='打开') bt2 = wx.Button(self, label='保存') ch1.SetSelection(2) self.info = st1 self.notebook = Notebook(self, sampleList) box = wx.BoxSizer(wx.HORIZONTAL) box.Add(st1, 1, wx.ALIGN_CENTER_VERTICAL) box.Add(st2, 0, wx.ALIGN_CENTER_VERTICAL) box.Add(st3, 0, wx.ALIGN_CENTER_VERTICAL) box.Add(ch1, 0) box.Add(self.cb1, 0, wx.EXPAND | wx.LEFT, 8) box.Add(self.cb2, 0, wx.EXPAND) box.Add(bt1, 0) box.Add(bt2, 0) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.notebook, 1, wx.EXPAND | wx.ALL) sizer.Add(box, 0, wx.EXPAND) self.SetSizer(sizer) ch1.Bind(wx.EVT_CHOICE, self.OnChoice) bt1.Bind(wx.EVT_BUTTON, self.OnOpen) bt2.Bind(wx.EVT_BUTTON, self.OnSave) accelTbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('O'), bt1.GetId()), (wx.ACCEL_CTRL, ord('S'), bt2.GetId()) ]) self.SetAcceleratorTable(accelTbl)
def __init__(self, parent, *args, **kwargs): from .GLWrapperObjects import ObjectsManager from .GUIPanel3D import Panel3D wx.Panel.__init__(self, parent, *args, **kwargs) # --- Data self.parent = parent self.manager = ObjectsManager() #self.manager.addMiscObjects() #self.manager.setAnimationCallBack(self.animCallBack, self) # --- GUI self.panel3D = Panel3D(self, self.manager, hasAnimation=False) self.objPanel = ObjectPanel(self, self.manager) # --- Layout self.sizer = wx.BoxSizer() self.sizer.Add(self.objPanel, 0, wx.EXPAND) self.sizer.Add(self.panel3D, 1, wx.EXPAND) self.SetSizerAndFit(self.sizer) # --- Drop self.SetDropTarget(FileDropTarget(self)) # --- Events # --- Shortcuts idFreqIncr = wx.NewId() idFreqDecr = wx.NewId() idAmplIncr = wx.NewId() idAmplDecr = wx.NewId() self.Bind(wx.EVT_MENU, self.onFreqIncr, id=idFreqIncr) self.Bind(wx.EVT_MENU, self.onFreqDecr, id=idFreqDecr) self.Bind(wx.EVT_MENU, self.onAmplIncr, id=idAmplIncr) self.Bind(wx.EVT_MENU, self.onAmplDecr, id=idAmplDecr) accel_tbl = wx.AcceleratorTable([ (wx.ACCEL_NORMAL, ord('w'), idFreqIncr), (wx.ACCEL_NORMAL, ord('s'), idFreqDecr), (wx.ACCEL_NORMAL, ord('a'), idAmplIncr), (wx.ACCEL_NORMAL, ord('d'), idAmplDecr) ]) self.SetAcceleratorTable(accel_tbl)
def _OnCreate(self): self.grid = self._GetGrid() self.grid.SetFocus() self.BindEvent(self.grid, wx.grid.EVT_GRID_SELECT_CELL, self.OnCellSelected, skipEvent=False) self.subWindows = [] self.panel = None super(GridEditWindow, self)._OnCreate() accelerators = [ (wx.ACCEL_CTRL, ord('D'), self.deleteToolbarItem.GetId()), (wx.ACCEL_CTRL, ord('I'), self.insertToolbarItem.GetId()), (wx.ACCEL_CTRL, ord('R'), self.retrieveToolbarItem.GetId()), (wx.ACCEL_CTRL, ord('S'), self.saveToolbarItem.GetId()) ] self.acceleratorTable = wx.AcceleratorTable(accelerators) self.SetAcceleratorTable(self.acceleratorTable) self.Retrieve()
def init_frame(self): self.frame = self.res.LoadFrame(None, 'frame') self.menuBar = self.res.LoadMenuBar("frame_menubar") self.frame.Bind(wx.EVT_MENU, self.on_file_open, id=xrc.XRCID("file_open_menu")) #self.frame.Bind(wx.EVT_MENU, self.on_file_save, id=xrc.XRCID("file_save_menu")) self.frame.Bind(wx.EVT_BUTTON, self.on_file_open, id=xrc.XRCID("file_path_button")) self.frame.Bind(wx.EVT_MENU, self.on_download_only, \ id=xrc.XRCID("process_download_only_menu")) self.frame.Bind(wx.EVT_MENU, self.OnText, \ id=xrc.XRCID("process_normal_menu")) self.frame.Bind(wx.EVT_MENU, self.OnCopy, \ id=xrc.XRCID("copy_menu")) self.frame.SetMenuBar(self.menuBar) self.panel = xrc.XRCCTRL(self.frame, 'panel_1') #self.frame.Bind(wx.EVT_BUTTON, self.OnSubmit, id=xrc.XRCID('button')) self.title_textctrl = xrc.XRCCTRL(self.panel, "title_textctrl") self.title_textctrl.Bind(wx.EVT_TEXT, self.OnText) self.output_textctrl = xrc.XRCCTRL(self.panel, "output_box") # set up accelerators accelEntries = [] accelEntries.append( (wx.ACCEL_CTRL, ord('O'), xrc.XRCID("file_open_menu"))) accelEntries.append( (wx.ACCEL_CTRL, ord('S'), xrc.XRCID("file_save_menu"))) accelEntries.append( (wx.ACCEL_CTRL, ord('d'), xrc.XRCID("process_download_only_menu"))) accelEntries.append( (wx.ACCEL_CTRL, ord('p'), xrc.XRCID("process_normal_menu"))) accelEntries.append( (wx.ACCEL_CTRL | wx.ACCEL_SHIFT, ord('c'), xrc.XRCID("copy_menu"))) accelTable = wx.AcceleratorTable(accelEntries) self.frame.SetAcceleratorTable(accelTable) self.frame.Show()
def __init__(self): wx.Frame.__init__(self, None, -1, self.title, size=(600, 600)) panel = wx.Panel(self) notebook = wx.Notebook(panel) # start ipc server self.ipc = IPCThread() # Pages firstPage = FirstPage(notebook) notebook.AddPage(firstPage, 'First Page') self.first = notebook.GetPage(0) # Menu menubar = wx.MenuBar() file_menu = wx.Menu() exit_file = file_menu.Append(wx.ID_EXIT, 'Quit' + 'CTRL+Q', 'Quit application') exitId = wx.NewId() accel_tbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('Q'), exitId)]) menubar.Append(file_menu, 'File') self.SetMenuBar(menubar) self.Bind(wx.EVT_MENU, self.OnQuit, exit_file) self.Bind(wx.EVT_MENU, self.OnQuit, id=exitId) self.SetAcceleratorTable(accel_tbl) # Status Bar self.statusbar = self.CreateStatusBar(2) self.statusbar.SetStatusWidths([300, 300]) self.statusbar.SetStatusText('Update:') # Subscriptions Publisher.subscribe(self.updateStatusBar, 'statusbar.update') # Sizing sizer = wx.BoxSizer() sizer.Add(notebook, 1, wx.EXPAND | wx.ALL) panel.SetSizer(sizer) panel.Layout() self.Show()
def __init__(self, *args, **kwargs): super(ListEditPanel, self).__init__(*args, **kwargs) self.lst = AutoWidthListCtrl(self, style=wx.LC_REPORT) self.lst.InsertColumn(0, "Index") self.lst.InsertColumn(1, "Type") self.lst.InsertColumn(2, "Value") self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated, self.lst) listbtns = wx.Panel(self) add_button = wx.Button(listbtns, label='&Add') self.Bind(wx.EVT_BUTTON, self.OnAdd, add_button) remove_button = wx.Button(listbtns, label='&Remove') self.Bind(wx.EVT_BUTTON, self.OnRemove, remove_button) moveup = wx.Button(listbtns, label='Move &Up') self.Bind(wx.EVT_BUTTON, self.OnMoveUp, moveup) movedown = wx.Button(listbtns, label='Move &Down') self.Bind(wx.EVT_BUTTON, self.OnMoveDown, movedown) aTable = wx.AcceleratorTable([ (wx.ACCEL_ALT, wx.WXK_UP, moveup.GetId()), (wx.ACCEL_ALT, wx.WXK_DOWN, movedown.GetId()), (wx.ACCEL_NORMAL, wx.WXK_INSERT, add_button.GetId()), (wx.ACCEL_NORMAL, wx.WXK_DELETE, remove_button.GetId()) ]) self.SetAcceleratorTable(aTable) vsizer = wx.BoxSizer(wx.VERTICAL) vsizer.Add(add_button) vsizer.Add(remove_button) vsizer.Add(moveup) vsizer.Add(movedown) listbtns.SetSizer(vsizer) hsizer = wx.BoxSizer(wx.HORIZONTAL) hsizer.Add(listbtns, 0, wx.ALIGN_CENTER_VERTICAL) hsizer.Add(self.lst, 1, wx.EXPAND) self.SetSizer(hsizer)
def set_keybindings(self, keybindings=None): """ Method to easily set key bindings. Also sets up debug key bindings and events. """ if keybindings is None: keybindings = [] # Add key bindings. tbl = [] bindings = keybindings for binding in keybindings: keyid = wx.NewId() self.Bind(wx.EVT_MENU, binding[2], id=keyid) tbl.append((binding[0], binding[1], keyid)) if len(bindings): self.SetAcceleratorTable(wx.AcceleratorTable(tbl))
def __init__(self, datepicker, previous, next_): self.previous = previous self.datepicker = datepicker self.next = next_ ID_PREVIOUS = wx.NewId() ID_NEXT = wx.NewId() datepicker.Bind(wx.EVT_BUTTON, self._focus_previous, id=ID_PREVIOUS) datepicker.Bind(wx.EVT_BUTTON, self._focus_next, id=ID_NEXT) accels = [ wx.AcceleratorEntry(wx.ACCEL_SHIFT, wx.WXK_TAB, ID_PREVIOUS), wx.AcceleratorEntry(wx.ACCEL_CTRL | wx.ACCEL_SHIFT, wx.WXK_TAB, ID_PREVIOUS), wx.AcceleratorEntry(wx.ACCEL_NORMAL, wx.WXK_TAB, ID_NEXT), wx.AcceleratorEntry(wx.ACCEL_CTRL, wx.WXK_TAB, ID_NEXT), ] acctable = wx.AcceleratorTable(accels) datepicker.SetAcceleratorTable(acctable)
def createButton(self): qdButton = wx.Button(self.panel, -1, '贴吧一键签到', pos=(200, 10), size=(-1, -1)) ctrl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('Q'), qdButton.GetId()) ]) self.SetAcceleratorTable(ctrl) self.Bind(wx.EVT_BUTTON, self.OnAddQd, qdButton) self.buttonItem = [] for data in self.buttonData(): item = wx.Button(self.panel, -1, data[0], pos=data[1], size=data[2]) self.buttonItem.append(item) self.Bind(wx.EVT_BUTTON, data[3], item) self.buttonItem[0].SetDefault()