def __init__(self, parent): super(minecraftImportWindow, self).__init__(parent, title='Cura - Minecraft import') saveFileList = map(os.path.basename, glob.glob(mclevel.saveFileDir + "/*")) self.panel = wx.Panel(self, -1) self.SetSizer(wx.BoxSizer()) self.GetSizer().Add(self.panel, 1, wx.EXPAND) sizer = wx.GridBagSizer(2, 2) self.saveListBox = wx.ListBox(self.panel, -1, choices=saveFileList) sizer.Add(self.saveListBox, (0, 0), span=(2, 1), flag=wx.EXPAND) self.playerListBox = wx.ListBox(self.panel, -1, choices=[]) sizer.Add(self.playerListBox, (0, 1), span=(2, 1), flag=wx.EXPAND) self.previewPanel = wx.Panel(self.panel, -1) self.previewPanel.SetMinSize((512, 512)) sizer.Add(self.previewPanel, (0, 2), flag=wx.EXPAND) self.importButton = wx.Button(self.panel, -1, 'Import') sizer.Add(self.importButton, (1, 2)) sizer.AddGrowableRow(1) self.panel.SetSizer(sizer) self.saveListBox.Bind(wx.EVT_LISTBOX, self.OnSaveSelect) self.playerListBox.Bind(wx.EVT_LISTBOX, self.OnPlayerSelect) self.importButton.Bind(wx.EVT_BUTTON, self.OnImport) self.previewPanel.Bind(wx.EVT_PAINT, self.OnPaintPreview) self.previewPanel.Bind(wx.EVT_SIZE, self.OnSizePreview) self.previewPanel.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackgroundPreview) self.previewPanel.Bind(wx.EVT_MOTION, self.OnMotion) self.level = None self.previewImage = None self.renderList = [] self.selectArea = None self.draggingArea = False self.Layout() self.Fit() self.gravelPen = wx.Pen(wx.Colour(128, 128, 128)) self.sandPen = wx.Pen(wx.Colour(192, 192, 0)) self.grassPen = [] self.waterPen = [] for z in xrange(0, 256): self.waterPen.append(wx.Pen(wx.Colour(0, 0, min(z + 64, 255)))) self.grassPen.append(wx.Pen(wx.Colour(0, min(64 + z, 255), 0))) self.isSolid = [True] * 256 self.isSolid[0] = False #Air self.isSolid[8] = False #Water self.isSolid[9] = False #Water self.isSolid[10] = False #Lava self.isSolid[11] = False #Lava self.isSolid[50] = False #Torch self.isSolid[51] = False #Fire
def __init__(self, parent, filename=None, read_ok_cb=None, size=(725, 450), _larch=None): self.parent = parent self.filename = filename self.larch = _larch self.read_ok_cb = read_ok_cb self.colors = GUIColors() wx.Frame.__init__(self, parent, -1, size=size, style=FRAMESTYLE) splitter = wx.SplitterWindow(self, style=wx.SP_LIVE_UPDATE) splitter.SetMinimumPaneSize(200) leftpanel = wx.Panel(splitter) ltop = wx.Panel(leftpanel) sel_none = Button(ltop, 'Select None', size=(100, 30), action=self.onSelNone) sel_all = Button(ltop, 'Select All', size=(100, 30), action=self.onSelAll) sel_imp = Button(ltop, 'Import Selected Groups', size=(200, 30), action=self.onOK) self.select_imported = sel_imp self.grouplist = FileCheckList(leftpanel, select_action=self.onShowGroup) tsizer = wx.GridBagSizer(2, 2) tsizer.Add(sel_all, (0, 0), (1, 1), LCEN, 0) tsizer.Add(sel_none, (0, 1), (1, 1), LCEN, 0) tsizer.Add(sel_imp, (1, 0), (1, 2), LCEN, 0) pack(ltop, tsizer) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(ltop, 0, LCEN | wx.GROW, 1) sizer.Add(self.grouplist, 1, LCEN | wx.GROW | wx.ALL, 1) pack(leftpanel, sizer) # right hand side rightpanel = wx.Panel(splitter) self.SetTitle("Reading Athena Project '%s'" % self.filename) self.title = SimpleText(rightpanel, self.filename, font=Font(13), colour=self.colors.title, style=LCEN) self.plotpanel = PlotPanel(rightpanel, messenger=self.plot_messages) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.title, 0, LCEN, 2) sizer.Add(self.plotpanel, 0, LCEN, 2) pack(rightpanel, sizer) splitter.SplitVertically(leftpanel, rightpanel, 1) self.statusbar = self.CreateStatusBar(2, 0) self.statusbar.SetStatusWidths([-3, -1]) statusbar_fields = [self.filename, ""] for i in range(len(statusbar_fields)): self.statusbar.SetStatusText(statusbar_fields[i], i) self.a_project = read_athena(self.filename, do_bkg=False, do_fft=False, _larch=_larch) self.allgroups = [] for item in self.a_project._athena_groups: if not item.startswith('_athena_'): self.allgroups.append(item) self.grouplist.Append(item) self.Show() self.Raise()
def __init__(self, parent, btn_clear_size=(120, -1), btn_clear_label='Clear PHIL', btn_import=True, btn_import_size=(120, -1), btn_import_label='Import PHIL', btn_export=False, btn_export_size=(120, -1), btn_export_label='Export PHIL', btn_default=True, btn_default_size=(120, -1), btn_default_label='Default PHIL', btn_pos='top', ctr_size=(-1, 125), ctr_value='', label_style='normal', content_style='normal'): CtrlBase.__init__(self, parent=parent, label_style=label_style, content_style=content_style) self.main_sizer = wx.BoxSizer(wx.VERTICAL) self.SetSizer(self.main_sizer) self.ctrl_sizer = wx.GridBagSizer(5, 5) self.ctr = wx.richtext.RichTextCtrl(self, size=ctr_size, style=wx.VSCROLL, value=ctr_value) span_counter = 1 if btn_pos in ('left', 'right'): self.btn_sizer = wx.BoxSizer(wx.VERTICAL) b_flag = wx.BOTTOM elif btn_pos in ('top', 'bottom'): self.btn_sizer = wx.BoxSizer(wx.HORIZONTAL) b_flag = wx.RIGHT else: b_flag = wx.ALL if btn_import: self.btn_import = wx.Button(self, label=btn_import_label, size=btn_import_size) self.btn_sizer.Add(self.btn_import, flag=b_flag, border=5) if btn_export: self.btn_export = wx.Button(self, label=btn_export_label, size=btn_export_size) self.btn_sizer.Add(self.btn_export, flag=b_flag, border=5) if btn_default: self.btn_default = wx.Button(self, label=btn_default_label, size=btn_default_size) self.btn_sizer.Add(self.btn_default, flag=b_flag, border=5) self.btn_clear = wx.Button(self, label=btn_clear_label, size=btn_clear_size) self.btn_sizer.Add(self.btn_clear) self.Bind(wx.EVT_BUTTON, self.onClear, self.btn_clear) if btn_pos == 'left': self.ctrl_sizer.Add(self.btn_sizer, pos=(0, 0), flag=wx.ALL) self.ctrl_sizer.Add(self.ctr, pos=(0, 1), flag=wx.EXPAND) self.ctrl_sizer.AddGrowableCol(1) self.ctrl_sizer.AddGrowableRow(0) elif btn_pos == 'right': self.ctrl_sizer.Add(self.btn_sizer, pos=(0, 1), flag=wx.ALL) self.ctrl_sizer.Add(self.ctr, pos=(0, 0), flag=wx.EXPAND) self.ctrl_sizer.AddGrowableCol(0) self.ctrl_sizer.AddGrowableRow(0) elif btn_pos == 'top': self.ctrl_sizer.Add(self.btn_sizer, pos=(0, 0), flag=wx.ALL | wx.ALIGN_LEFT) self.ctrl_sizer.Add(self.ctr, pos=(1, 0), flag=wx.EXPAND) self.ctrl_sizer.AddGrowableCol(0) self.ctrl_sizer.AddGrowableRow(1) elif btn_pos == 'bottom': self.ctrl_sizer.Add(self.btn_sizer, pos=(1, 0), flag=wx.ALL | wx.ALIGN_RIGHT) self.ctrl_sizer.Add(self.ctr, pos=(0, 0), flag=wx.EXPAND) self.ctrl_sizer.AddGrowableCol(0) self.ctrl_sizer.AddGrowableRow(0) self.main_sizer.Add(self.ctrl_sizer, 1, flag=wx.EXPAND | wx.ALL, border=5)
def __init__(self, parent): adv.WizardPageSimple.__init__(self, parent) self.errors = [] border = 4 vbs = wx.BoxSizer(wx.VERTICAL) vbs.Add(wx.StaticText(self, label=u'{}'.format(_('Summary'))), flag=wx.ALL, border=border) vbs.Add(wx.StaticText(self, label=u' '), flag=wx.ALL, border=border) rows = 0 self.fileLabel = wx.StaticText(self, label=u'{}:'.format(_('Excel File'))) self.fileName = wx.StaticText(self) rows += 1 self.sheetLabel = wx.StaticText(self, label=u'{}:'.format(_('Sheet Name'))) self.sheetName = wx.StaticText(self) rows += 1 self.riderLabel = wx.StaticText(self, label=u'{}:'.format( _('Rider Data Entries'))) self.riderNumber = wx.StaticText(self) rows += 1 self.getCategoriesFromCategoriesLabel = wx.StaticText( self, label=u'{}:'.format( _('CrossMgr Categories from Excel EventCategory/CustomCategory' ))) self.initCategoriesFromExcel = wx.StaticText(self) rows += 1 self.categoryAndPropertiesLabel = wx.StaticText( self, label=u'{}:'.format(_('Categories and Properties'))) self.categoryAndProperties = wx.StaticText(self) rows += 1 self.statusLabel = wx.StaticText(self, label=u'{}:'.format(_('Status'))) self.statusName = wx.StaticText(self) rows += 1 self.errorLabel = wx.StaticText(self, label=u'{}:'.format(_('Errors'))) self.errorName = wx.TextCtrl(self, style=wx.TE_MULTILINE | wx.TE_READONLY, size=(-1, 128)) rows += 1 self.copyErrorsToClipboard = wx.Button( self, label=_('Copy Errors to Clipboard')) self.copyErrorsToClipboard.Bind(wx.EVT_BUTTON, self.doCopyErrorsToClipboard) rows += 1 fbs = wx.GridBagSizer(hgap=2, vgap=1) labelAlign = wx.ALIGN_RIGHT fieldAlign = wx.EXPAND | wx.GROW blank = lambda: None labelFieldFormats = [ (self.fileLabel, 0, labelAlign), (self.fileName, 1, fieldAlign), (self.sheetLabel, 0, labelAlign), (self.sheetName, 1, fieldAlign), (self.riderLabel, 0, labelAlign), (self.riderNumber, 1, fieldAlign), (self.getCategoriesFromCategoriesLabel, 0, labelAlign), (self.initCategoriesFromExcel, 1, fieldAlign), (self.categoryAndPropertiesLabel, 0, labelAlign), (self.categoryAndProperties, 1, fieldAlign), (self.statusLabel, 0, labelAlign), (self.statusName, 1, fieldAlign), (self.errorLabel, 0, labelAlign), (self.errorName, 1, fieldAlign), (blank(), 0, labelAlign), (self.copyErrorsToClipboard, 1, fieldAlign), ] row = 0 for i, (item, column, flag) in enumerate(labelFieldFormats): if not item: continue if column == 1: flag |= wx.EXPAND if item == self.errorName: fbs.Add(item, pos=(row, 1), span=(1, 1), flag=flag) row += 1 else: fbs.Add(item, pos=(row, column), span=(1, 1), flag=flag) if column == 1: row += 1 vbs.Add(fbs) self.SetSizer(vbs)
def InitUI(self): self.mainSizer = wx.GridBagSizer(4, 4) self.metadataTemplatesLbl = wx.StaticText(self, label="Metadata Templates") self.metadataTemplatesLbl.ToolTip = "List of Metadata Templates available." self.metadataTemplatesComboBox = wx.ComboBox(self, style=wx.CB_READONLY) self.metadataTemplatesComboBox.ToolTip = "List of Metadata Templates available." self.metadataTemplatesComboBox.Items = dtkglobal.metadataTemplates self.metadataTemplatesComboBox.Bind(wx.EVT_COMBOBOX, self.ChangeMetadataTemplate) self.metadataTypesLbl = wx.StaticText(self, label="Metadata Types") self.metadataTypesLbl.ToolTip = "List of Metadata Types." self.metadataTypesListBox = wx.ListBox(self, style=wx.LB_MULTIPLE) self.metadataTypesListBox.ToolTip = "List of Metadata Types." self.metadataTypesListBox.Items = dtkglobal.metadataTypes self.btnSaveMetadataTemplate = wx.Button(self, label="Save") self.btnSaveMetadataTemplate.Bind(wx.EVT_BUTTON, self.SaveMetadataTemplate) self.btnDeleteMetadataTemplate = wx.Button(self, label="Delete") self.btnDeleteMetadataTemplate.Bind(wx.EVT_BUTTON, self.DeleteMetadataTemplate) row = 0 col = 0 self.mainSizer.Add(self.metadataTemplatesLbl, pos=(row, col), flag=wx.EXPAND | wx.ALL | wx.ALIGN_LEFT, border=5) row = 0 col = 2 self.mainSizer.Add( self.metadataTemplatesComboBox, pos=(row, col), span=(0, 10), flag=wx.EXPAND | wx.ALL | wx.ALIGN_RIGHT, border=5, ) row = 1 col = 0 self.mainSizer.Add(self.metadataTypesLbl, pos=(row, col), flag=wx.EXPAND | wx.ALL | wx.ALIGN_LEFT, border=5) row = 1 col = 2 self.mainSizer.AddGrowableRow(row) self.mainSizer.Add(self.metadataTypesListBox, pos=(row, col), span=(0, 10), flag=wx.EXPAND | wx.ALL | wx.ALIGN_RIGHT, border=5) row = 2 col = 0 self.mainSizer.Add(self.btnSaveMetadataTemplate, pos=(row, col), flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.ALIGN_LEFT, border=5) row = 2 col = 10 self.mainSizer.Add(self.btnDeleteMetadataTemplate, pos=(row, col), flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.ALIGN_RIGHT, border=5) self.mainSizer.AddGrowableCol(col) self.mainSizer.SetEmptyCellSize((0, 0)) self.Layout() self.Fit() self.SetSizer(self.mainSizer)
def buildSteps(self, panel): operation_step = wx.StaticBox(panel, label="操作步骤") operation_step_sizer = wx.StaticBoxSizer(operation_step, wx.VERTICAL) grid_bag_sizer1 = wx.GridBagSizer(5, 0) precondition = wx.StaticText(panel, label="前提条件: ") precondition_input = wx.TextCtrl(panel, size=(400, 20)) grid_bag_sizer1.Add(precondition, pos=(0, 0), span=(1, 1)) grid_bag_sizer1.Add(precondition_input, pos=(0, 1), span=(1, 10), flag=wx.RIGHT, border=10) precondition = wx.StaticText(panel, label="操作步骤: ") num1 = wx.StaticText(panel, label="(1) ") precondition_input1 = wx.TextCtrl(panel, size=(374, 20)) grid_bag_sizer1.Add(precondition, pos=(1, 0), span=(1, 1)) grid_bag_sizer1.Add(num1, pos=(1, 1), span=(1, 1)) grid_bag_sizer1.Add(precondition_input1, pos=(1, 2), span=(1, 10)) num2 = wx.StaticText(panel, label="(2) ") precondition_input2 = wx.TextCtrl(panel, size=(374, 20)) grid_bag_sizer1.Add(num2, pos=(2, 1), span=(1, 1)) grid_bag_sizer1.Add(precondition_input2, pos=(2, 2), span=(1, 10)) num3 = wx.StaticText(panel, label="(3) ") precondition_input3 = wx.TextCtrl(panel, size=(374, 20)) grid_bag_sizer1.Add(num3, pos=(3, 1), span=(1, 1)) grid_bag_sizer1.Add(precondition_input3, pos=(3, 2), span=(1, 10)) num4 = wx.StaticText(panel, label="(4) ") precondition_input4 = wx.TextCtrl(panel, size=(374, 20)) grid_bag_sizer1.Add(num4, pos=(4, 1), span=(1, 1)) grid_bag_sizer1.Add(precondition_input4, pos=(4, 2), span=(1, 10)) num5 = wx.StaticText(panel, label="(5) ") precondition_input5 = wx.TextCtrl(panel, size=(374, 20)) grid_bag_sizer1.Add(num5, pos=(5, 1), span=(1, 1)) grid_bag_sizer1.Add(precondition_input5, pos=(5, 2), span=(1, 10)) actual_result = wx.StaticText(panel, label="实际结果: ") actual_result_input = wx.TextCtrl(panel, size=(400, 40)) grid_bag_sizer1.Add(actual_result, pos=(6, 0), span=(1, 1)) grid_bag_sizer1.Add(actual_result_input, pos=(6, 1), span=(2, 10)) expect_result = wx.StaticText(panel, label="期望结果: ") expect_result_input = wx.TextCtrl(panel, style=wx.TE_MULTILINE, size=(400, 40)) grid_bag_sizer1.Add(expect_result, pos=(8, 0), span=(1, 1)) grid_bag_sizer1.Add(expect_result_input, pos=(8, 1), span=(2, 10)) remark = wx.StaticText(panel, label="备注: ") remark_input = wx.TextCtrl(panel, size=(400, 40)) grid_bag_sizer1.Add(remark, pos=(10, 0), span=(1, 1)) grid_bag_sizer1.Add(remark_input, pos=(10, 1), span=(2, 10)) operation_step_sizer.Add(grid_bag_sizer1, flag=wx.ALL, border=5) return operation_step_sizer
def __init__(self): wx.Frame.__init__(self, None, -1, 'Find Recent Files (pid {})'.format(os.getpid()), size=(600, 300)) panel = wx.Panel(self, -1) self.target_tc = wx.TextCtrl(panel) self.target_button = wx.Button(panel, -1, "Target Dir", pos=(50, 20)) self.Bind(wx.EVT_BUTTON, self.OnChooseTarget, self.target_button) self.result_tc = wx.TextCtrl(panel, style=wx.TE_MULTILINE) self.find_button = wx.Button(panel, -1, "Find", pos=(50, 20)) self.Bind(wx.EVT_BUTTON, self.OnClick, self.find_button) self.find_button.SetDefault() self.exit_button = wx.Button(panel, -1, "Exit", pos=(50, 20)) self.Bind(wx.EVT_BUTTON, self.OnExit, self.exit_button) lbl = wx.StaticText(panel, label="python " + platform.python_version() + " on " + platform.system() + " " + wx.__file__) bagSizer = wx.GridBagSizer(hgap=5, vgap=5) row = 0 col = 0 bagSizer.Add(self.target_button, pos=(row, 0), flag=wx.EXPAND | wx.ALL, border=1) bagSizer.Add(self.target_tc, pos=(row, 1), span=(1, 3), flag=wx.EXPAND | wx.ALL, border=1) row += 1 bagSizer.Add(self.result_tc, pos=(row, 0), span=(1, 3), flag=wx.EXPAND | wx.ALL, border=1) row += 1 bagSizer.Add(self.find_button, pos=(row, 0), flag=wx.EXPAND | wx.ALL, border=1) bagSizer.Add(self.exit_button, pos=(row, 1), flag=wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, border=1) row += 1 bagSizer.Add(lbl, pos=(row, 0), span=(1, 3), flag=wx.EXPAND | wx.ALL, border=1) bagSizer.AddGrowableCol(2, 0) bagSizer.AddGrowableRow(1, 0) panel.SetSizerAndFit(bagSizer)
def __init__(self, parent, title, homeDir): #wiz.WizardPageSimple.__init__(self, parent) wiz.PyWizardPage.__init__(self, parent) # create a sizer of this page. self.sizerA = makePageTitle(self, title) defaultOutputDir = os.path.join(homeDir, 'code') self.outputDirLabel = wx.StaticText(self, -1, 'Output Dir') self.outputDirTextBox = wx.TextCtrl(self, -1, defaultOutputDir, (0, 0), (250, 21)) self.outputDirBtn = wx.Button(self, -1, 'Browse...') self.Bind(wx.EVT_BUTTON, self.OnOutputDirBtn, self.outputDirBtn) self.moduleSubdirLabel = wx.StaticText(self, -1, 'Module Subdir') self.moduleSubdirTextBox = wx.TextCtrl(self, -1, '', (0, 0), (200, 21)) self.companyNameLabel = wx.StaticText(self, -1, 'Company Name') self.companyNameTextBox = wx.TextCtrl(self, -1, '', (0, 0), (250, 21)) self.authorLabel = wx.StaticText(self, -1, 'Author') self.authorTextBox = wx.TextCtrl(self, -1, '', (0, 0), (250, 21)) self.docGroupLabel = wx.StaticText(self, -1, 'Doxygen Group') self.docGroupTextBox = wx.TextCtrl(self, -1, '', (0, 0), (200, 21)) # Layout sizerB = wx.GridBagSizer(4, 6) # row 0 sizerB.Add(self.outputDirLabel, (0, 0), flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) sizerB.Add(self.outputDirTextBox, (0, 1), flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) # row 1 sizerB.Add(self.outputDirBtn, (1, 1), flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) # row 2 sizerB.Add(self.moduleSubdirLabel, (2, 0), flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) sizerB.Add(self.moduleSubdirTextBox, (2, 1), flag = wx.EXPAND) # sizerB.Add(self.companyNameLabel, (3, 0), flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) sizerB.Add(self.companyNameTextBox, (3, 1), flag = wx.EXPAND) # row 5 sizerB.Add(self.authorLabel, (4, 0), flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) sizerB.Add(self.authorTextBox, (4, 1), flag = wx.EXPAND) # row 6 sizerB.Add(self.docGroupLabel, (5, 0), flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL) sizerB.Add(self.docGroupTextBox, (5, 1), flag = wx.EXPAND) # row 7 self.sizerA.Add(sizerB, 0, wx.ALL, 6) self.sizerA.Fit(self) self.SetSizer(self.sizerA)
def __init__(self, parent, log): self.log = log wx.Panel.__init__(self, parent, -1) # This will be used for all of the labels that follow (bold label) bfont = self.GetFont() bfont.SetWeight(wx.BOLD) # Contains everything tsizer = wx.BoxSizer(wx.VERTICAL) # Contains upper controls usizer = wx.BoxSizer(wx.HORIZONTAL) # Text control for ext / type entry plus label. t = wx.StaticText(self, -1, 'Extension / MIME type: ', style=wx.ALIGN_RIGHT) t.SetFont(bfont) usizer.Add(t, 0, wx.ALL | wx.ALIGN_CENTER | wx.ALIGN_CENTER_VERTICAL, 2) self.ext = wx.TextCtrl(self, -1, value="wav", style=wx.TE_PROCESS_ENTER) usizer.Add(self.ext, 0, wx.ALL | wx.ALIGN_TOP, 4) self.Bind(wx.EVT_TEXT_ENTER, self.OnLookup, self.ext) # Select how to look it up self.useExt = wx.RadioButton(self, -1, "By extension", style=wx.RB_GROUP) self.useMime = wx.RadioButton(self, -1, "By MIME type") usizer.Add(self.useExt, 0, wx.ALL | wx.ALIGN_CENTER | wx.ALIGN_CENTER_VERTICAL, 4) usizer.Add(self.useMime, 0, wx.ALL | wx.ALIGN_CENTER | wx.ALIGN_CENTER_VERTICAL, 4) self.useExt.SetValue(1) # Trigger a lookup (hitting ENTER in the text ctrl will do the same thing) self.go = wx.Button(self, -1, "Go get it!") usizer.Add(self.go, 0, wx.ALL | wx.ALIGN_CENTER | wx.ALIGN_CENTER_VERTICAL, 4) self.Bind(wx.EVT_BUTTON, self.OnLookup, self.go) # StaticBox with larger label than usual lbox = wx.StaticBox(self, -1, 'wx.FileType') f = self.GetFont() f.SetPointSize(f.GetPointSize() * 2) f.SetWeight(wx.BOLD) lbox.SetFont(f) lsizer = wx.StaticBoxSizer(lbox, wx.HORIZONTAL) # Contains the wx.FileType info llsizer = wx.GridBagSizer(2, 2) #------- Icon info t = wx.StaticText(self, -1, 'GetIconInfo: ', style=wx.ALIGN_RIGHT) t.SetFont(bfont) llsizer.Add(t, (0, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) self.icon = wx.StaticBitmap(self, -1, images.NoIcon.GetBitmap()) llsizer.Add(self.icon, (0, 1), (1, 1), wx.ALL | wx.ALIGN_CENTER, 2) self.iconsource = wx.TextCtrl(self, -1, value="", size=(125, -1), style=wx.TE_READONLY) llsizer.Add(self.iconsource, (0, 2), (1, 1), wx.ALL | wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL, 2) self.iconoffset = wx.TextCtrl(self, -1, value="", size=(25, -1), style=wx.TE_READONLY) llsizer.Add(self.iconoffset, (0, 3), (1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 2) #------- MIME Type t = wx.StaticText(self, -1, 'GetMimeType: ', style=wx.ALIGN_RIGHT) t.SetFont(bfont) llsizer.Add(t, (1, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) self.mimetype = wx.TextCtrl(self, -1, value="", style=wx.TE_READONLY) llsizer.Add(self.mimetype, (1, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) #------- MIME Types t = wx.StaticText(self, -1, 'GetMimeTypes: ', style=wx.ALIGN_RIGHT) t.SetFont(bfont) llsizer.Add(t, (2, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) self.mimetypes = wx.TextCtrl(self, -1, value="", style=wx.TE_READONLY) llsizer.Add(self.mimetypes, (2, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) #------- Extensions t = wx.StaticText(self, -1, 'GetExtensions: ', style=wx.ALIGN_RIGHT) t.SetFont(bfont) llsizer.Add(t, (3, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) self.extensions = wx.TextCtrl(self, -1, value="", style=wx.TE_READONLY) llsizer.Add(self.extensions, (3, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) #------- Description t = wx.StaticText(self, -1, 'GetDescription: ', style=wx.ALIGN_RIGHT) t.SetFont(bfont) llsizer.Add(t, (4, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) self.description = wx.TextCtrl(self, -1, value="", style=wx.TE_READONLY) llsizer.Add(self.description, (4, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) #------- Open command t = wx.StaticText(self, -1, 'GetOpenCommand: ', style=wx.ALIGN_RIGHT) t.SetFont(bfont) llsizer.Add(t, (5, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) self.opencommand = wx.TextCtrl(self, -1, value="", style=wx.TE_READONLY) llsizer.Add(self.opencommand, (5, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) #------- Print command t = wx.StaticText(self, -1, 'GetPrintCommand: ', style=wx.ALIGN_RIGHT) t.SetFont(bfont) llsizer.Add(t, (6, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) self.printcommand = wx.TextCtrl(self, -1, value="", style=wx.TE_READONLY) llsizer.Add(self.printcommand, (6, 1), (1, 3), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) #------- All commands t = wx.StaticText(self, -1, 'GetAllCommands: ', style=wx.ALIGN_RIGHT) t.SetFont(bfont) llsizer.Add(t, (7, 0), (1, 1), wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 2) self.allcommands = wx.TextCtrl(self, -1, value="", style=wx.TE_READONLY | wx.TE_DONTWRAP | wx.TE_MULTILINE) # Set the default height to be smaller than normal (for # multi-line) so the sizer can then expand it to whatever # space is available self.allcommands.SetSize((-1, 20)) llsizer.Add(self.allcommands, (7, 1), (1, 3), wx.ALL | wx.GROW | wx.ALIGN_CENTER, 2) # Tell the sizer to expand this row as needed llsizer.AddGrowableRow(7) llsizer.AddGrowableCol(2) #---------------------------------------------------------------------------- lrsizer = wx.BoxSizer(wx.VERTICAL) #------- List box with known MIME types t = wx.StaticText(self, -1, 'Known MIME types') t.SetFont(bfont) lrsizer.Add(t, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4) self.mimelist = wx.ListBox(self, -1, choices=[], style=wx.LB_SINGLE) # | wx.LB_SORT) lrsizer.Add(self.mimelist, 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER | wx.FIXED_MINSIZE, 4) self.Bind(wx.EVT_LISTBOX, self.OnListbox, self.mimelist) #---------------------------------------------------------------------------- lsizer.Add(llsizer, 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4) lsizer.Add(lrsizer, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4) #---------------------------------------------------------------------------- tsizer.Add(usizer, 0, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4) tsizer.Add(lsizer, 1, wx.ALL | wx.EXPAND | wx.ALIGN_CENTER, 4) #---------------------------------------------------------------------------- self.SetSizer(tsizer) tsizer.Fit(self) # Populate the Known MIME types list with what is in the database try: mtypes = wx.TheMimeTypesManager.EnumAllFileTypes() except wx.PyAssertionError: mtypes = [] # TODO: On wxMac, EnumAllFileTypes produces tons of dupes, which # causes quirky behavior because the list control doesn't expect # dupes, and simply wastes space. So remove the dupes for now, # then remove this hack when we fix EnumAllFileTypes on Mac. mimes = [] for mt in mtypes: if mt not in mimes: #self.mimelist.Append(mt) mimes.append(mt) if mimes: mimes.sort() self.mimelist.AppendItems(mimes) # Do a lookup of *.wav for a starting position self.OnLookup()
def __init__(self, parent): """Constructor""" wx.Panel.__init__(self, parent=parent) # load parameters to set dimension of frames and graphs configs = ConfigFunctions.load_config('./config.yaml') self.window_width = configs['window_width'] self.window_height = configs['window_height'] self.dirname = os.getcwd() self.folder1 = '' self.folder2 = '' self.folder3 = '' self.sizer = wx.GridBagSizer(0, 0) self.header = wx.StaticText(self, -1, "Principal Component Analysis", size=(500, 100)) font = wx.Font(20, wx.MODERN, wx.NORMAL, wx.NORMAL) self.header.SetFont(font) self.sizer.Add(self.header, pos=(0, 0), span=(2, 5), flag=wx.LEFT | wx.TOP, border=25) self.instructions = wx.StaticText( self, -1, "Run PCA on animals from different groups using extracted gait kinematic parameters.", size=(self.window_width, 50)) font = wx.Font(15, wx.MODERN, wx.NORMAL, wx.NORMAL) self.instructions.SetFont(font) self.sizer.Add(self.instructions, pos=(2, 0), span=(1, 6), flag=wx.LEFT, border=25) self.data_widgets = [] ################################# self.select_group1_button = wx.Button(self, id=wx.ID_ANY, label="Group 1") self.sizer.Add(self.select_group1_button, pos=(3, 0), flag=wx.LEFT | wx.TOP, border=25) self.data_widgets.append(self.select_group1_button) self.Bind( wx.EVT_BUTTON, lambda event, group_no=0: self.SelectGroupFolder(event, group_no), self.select_group1_button) self.select_group1_text = wx.StaticText( self, label="\nPlease select kinematic data folder of the first group.") self.sizer.Add(self.select_group1_text, pos=(3, 1), flag=wx.LEFT | wx.TOP, border=25) self.data_widgets.append(self.select_group1_text) ################################# self.select_group2_button = wx.Button(self, id=wx.ID_ANY, label="Group 2") self.sizer.Add(self.select_group2_button, pos=(4, 0), flag=wx.LEFT | wx.TOP, border=25) self.data_widgets.append(self.select_group2_button) self.Bind( wx.EVT_BUTTON, lambda event, group_no=1: self.SelectGroupFolder(event, group_no), self.select_group2_button) self.select_group2_text = wx.StaticText( self, label="\nPlease select kinematic data folder of the second group.") self.sizer.Add(self.select_group2_text, pos=(4, 1), flag=wx.LEFT | wx.TOP, border=25) self.data_widgets.append(self.select_group2_text) ################################# self.select_group3_button = wx.Button(self, id=wx.ID_ANY, label="Group 3") self.sizer.Add(self.select_group3_button, pos=(5, 0), flag=wx.LEFT | wx.TOP, border=25) self.data_widgets.append(self.select_group3_button) self.Bind( wx.EVT_BUTTON, lambda event, group_no=2: self.SelectGroupFolder(event, group_no), self.select_group3_button) self.select_group3_text = wx.StaticText( self, label= "\nPlease select kinematic data folder of the third group (optional)." ) self.sizer.Add(self.select_group3_text, pos=(5, 1), flag=wx.LEFT | wx.TOP, border=25) self.data_widgets.append(self.select_group3_text) ################################# self.select_output_folder_button = wx.Button( self, id=wx.ID_ANY, label='Select output path') self.sizer.Add(self.select_output_folder_button, pos=(7, 1), flag=wx.TOP | wx.LEFT | wx.BOTTOM, border=25) self.data_widgets.append(self.select_output_folder_button) self.select_output_folder_button.Bind(wx.EVT_BUTTON, self.SelectOutputFolder) self.select_output_folder_button.Show() self.SetSizer(self.sizer) self.GetParent().Layout()
def __init__(self, endcallback): self.endcallback = endcallback self.syncabort = threading.Event() super().__init__(None, id=wx.ID_ANY, title=u"amigaXfer Setup", pos=wx.DefaultPosition, size=wx.Size(512, 225), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetSizeHints(wx.DefaultSize, wx.DefaultSize) self.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DLIGHT)) bSizer1 = wx.BoxSizer(wx.VERTICAL) gbSizer1 = wx.GridBagSizer(0, 0) gbSizer1.SetFlexibleDirection(wx.BOTH) gbSizer1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.m_portmsg = wx.StaticText(self, wx.ID_ANY, u"Port", wx.DefaultPosition, wx.DefaultSize, 0) self.m_portmsg.Wrap(-1) gbSizer1.Add(self.m_portmsg, wx.GBPosition(0, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) m_portChoices = [ port for (port, desc, hwid) in serial.tools.list_ports.comports() ] m_portChoices.reverse() self.m_port = wx.ComboBox(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, m_portChoices, 0) self.m_port.SetSelection(0) gbSizer1.Add(self.m_port, wx.GBPosition(0, 1), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_baudratemsg = wx.StaticText(self, wx.ID_ANY, u"Xfer Baudrate", wx.DefaultPosition, wx.DefaultSize, 0) self.m_baudratemsg.Wrap(-1) gbSizer1.Add(self.m_baudratemsg, wx.GBPosition(1, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) m_baudrateChoices = [ u"9600", u"19200", u"38400", u"57600", u"115200", u"256k", u"512k" ] self.m_baudrate = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_baudrateChoices, 0) self.m_baudrate.SetSelection(4) gbSizer1.Add(self.m_baudrate, wx.GBPosition(1, 1), wx.GBSpan(1, 1), wx.ALL, 5) bSizer1.Add(gbSizer1, 0, wx.EXPAND, 5) m_debuggerChoices = [u"RomWack (exec v37-)", u"SAD (exec v39+)"] self.m_debugger = wx.RadioBox(self, wx.ID_ANY, u"Debugger", wx.DefaultPosition, wx.DefaultSize, m_debuggerChoices, 1, wx.RA_SPECIFY_ROWS) self.m_debugger.SetSelection(0) bSizer1.Add(self.m_debugger, 0, wx.ALL | wx.EXPAND, 5) wSizer1 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS) self.m_dangerfast = wx.CheckBox(self, wx.ID_ANY, u"DangerFast", wx.DefaultPosition, wx.DefaultSize, 0) self.m_dangerfast.Hide() self.m_dangerfast.SetForegroundColour(wx.Colour(255, 0, 0)) self.m_dangerfast.SetToolTip(u"Dev's hardcoded speeds") self.m_dangerfast.Bind(wx.EVT_CHECKBOX, self.onCheckBox) wSizer1.Add(self.m_dangerfast, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_crashentry = wx.CheckBox(self, wx.ID_ANY, u"CrashEntry", wx.DefaultPosition, wx.DefaultSize, 0) self.m_crashentry.SetToolTip(u"Refer to bootstrap doc") self.m_crashentry.Bind(wx.EVT_CHECKBOX, self.onCheckBox) wSizer1.Add(self.m_crashentry, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_resetfirst = wx.CheckBox(self, wx.ID_ANY, u"ResetFirst", wx.DefaultPosition, wx.DefaultSize, 0) self.m_resetfirst.SetToolTip(u"Reboots for cleaner env") self.m_resetfirst.Bind(wx.EVT_CHECKBOX, self.onCheckBox) wSizer1.Add(self.m_resetfirst, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_paranoid = wx.CheckBox(self, wx.ID_ANY, u"Paranoid", wx.DefaultPosition, wx.DefaultSize, 0) self.m_paranoid.SetToolTip(u"AmigaSnippets verifyuse (slow)") wSizer1.Add(self.m_paranoid, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_debug = wx.CheckBox(self, wx.ID_ANY, u"Debug", wx.DefaultPosition, wx.DefaultSize, 0) self.m_debug.SetToolTip(u"Extra debug text") wSizer1.Add(self.m_debug, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_logwindow = wx.CheckBox(self, wx.ID_ANY, u"LogWindow", wx.DefaultPosition, wx.DefaultSize, 0) self.m_logwindow.SetToolTip(u"Redirect log to a window") self.m_logwindow.SetValue(True) wSizer1.Add(self.m_logwindow, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) bSizer1.Add(wSizer1, 1, wx.EXPAND, 5) wSizer14 = wx.WrapSizer(wx.HORIZONTAL, wx.WRAPSIZER_DEFAULT_FLAGS) self.m_quit = wx.Button(self, wx.ID_ANY, u"Quit", wx.DefaultPosition, wx.DefaultSize, 0) self.m_quit.Bind(wx.EVT_BUTTON, self.onQuitPressed) wSizer14.Add( self.m_quit, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5) self.m_about = wx.Button(self, wx.ID_ANY, u"About", wx.DefaultPosition, wx.DefaultSize, 0) self.m_about.Bind(wx.EVT_BUTTON, self.onAbout) wSizer14.Add( self.m_about, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5) self.m_connect = wx.Button(self, wx.ID_ANY, u"Connect", wx.DefaultPosition, wx.DefaultSize, 0) self.m_connect.Bind(wx.EVT_BUTTON, self.DebuggerConnect) wSizer14.Add( self.m_connect, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5) bSizer1.Add(wSizer14, 0, wx.ALIGN_RIGHT, 5) self.SetSizer(bSizer1) self.Layout() self.Fit() self.Centre(wx.BOTH) self.Bind(wx.EVT_CLOSE, self.onClose) #FIXME: Secret tickboxes. self.Bind(wx.EVT_KEY_DOWN, self.onKeyPress) return
def Configure(self, x=None, y=None, displayNumber=None, center=False): panel = eg.ConfigPanel() text = self.text cCB = panel.CheckBox(center, text.label_C) xCB = panel.CheckBox(x is not None, text.text1) yCB = panel.CheckBox(y is not None, text.text3) displayCB = panel.CheckBox(displayNumber is not None, text.display) #xCtrl = panel.SpinIntCtrl(x or 0, min = -maxint - 1, max = maxint) xCtrl = panel.SpinIntCtrl(x or 0, min=0, max=maxint) # since 1.0.1 xCtrl.Enable(x is not None) #yCtrl = panel.SpinIntCtrl(y or 0, min = -maxint - 1, max = maxint) yCtrl = panel.SpinIntCtrl(y or 0, min=0, max=maxint) # since 1.0.1 yCtrl.Enable(y is not None) display = -1 if displayNumber is None else displayNumber displayChoice = eg.DisplayChoice(panel, display) displayChoice.Enable(displayNumber is not None) xPixels = wx.StaticText(panel, -1, text.text2) yPixels = wx.StaticText(panel, -1, text.text2) monsCtrl = eg.MonitorsCtrl(panel, background=(224, 238, 238)) note = wx.StaticText(panel, -1, text.note) note.SetForegroundColour(wx.RED) sizer = wx.GridBagSizer(vgap=6, hgap=5) sizer.Add(cCB, (0, 0), (1, 3), flag=wx.BOTTOM, border=8) sizer.Add(xCB, (1, 0), (1, 1)) sizer.Add(xCtrl, (1, 1), (1, 1)) sizer.Add(xPixels, (1, 2), (1, 1)) sizer.Add(yCB, (2, 0), (1, 1)) sizer.Add(yCtrl, (2, 1), (1, 1)) sizer.Add(yPixels, (2, 2), (1, 1)) sizer.Add(note, (3, 0), (1, 3)) sizer.Add(displayCB, (4, 0), (1, 1), flag=wx.TOP, border=14) sizer.Add(displayChoice, (4, 1), (1, 2), flag=wx.TOP, border=13) panel.sizer.Add(sizer, 1, wx.EXPAND) panel.sizer.Add(monsCtrl, 0, wx.TOP, 8) def HandleCenterCheckBox(event=None): val = not cCB.GetValue() xCB.Enable(val) xCtrl.Enable(val) xPixels.Enable(val) yCB.Enable(val) yCtrl.Enable(val) yPixels.Enable(val) if not val: xCB.SetValue(False) yCB.SetValue(False) xCtrl.SetValue(0) yCtrl.SetValue(0) if event: event.Skip() cCB.Bind(wx.EVT_CHECKBOX, HandleCenterCheckBox) HandleCenterCheckBox() def HandleXCheckBox(event): xCtrl.Enable(event.IsChecked()) event.Skip() xCB.Bind(wx.EVT_CHECKBOX, HandleXCheckBox) def HandleYCheckBox(event): yCtrl.Enable(event.IsChecked()) event.Skip() yCB.Bind(wx.EVT_CHECKBOX, HandleYCheckBox) def HandleDisplayCB(event): flag = event.IsChecked() displayChoice.Enable(flag) if flag: display = 0 if displayNumber is None else displayNumber else: display = -1 displayChoice.SetValue(display) event.Skip() displayCB.Bind(wx.EVT_CHECKBOX, HandleDisplayCB) while panel.Affirmed(): if xCtrl.IsEnabled(): x = xCtrl.GetValue() else: x = None if yCtrl.IsEnabled(): y = yCtrl.GetValue() else: y = None if displayChoice.IsEnabled(): displayNumber = displayChoice.GetValue() else: displayNumber = None panel.SetResult(x, y, displayNumber, cCB.GetValue())
def __init__( self, parent, data, pointNo, itemCap="Point No.", id=wx.ID_ANY, title=_("Edit point"), style=wx.DEFAULT_DIALOG_STYLE, ): """Dialog for editing item cells in list""" wx.Dialog.__init__(self, parent, id, title=_(title), style=style) self.parent = parent panel = Panel(parent=self) sizer = wx.BoxSizer(wx.VERTICAL) box = StaticBox(parent=panel, id=wx.ID_ANY, label=" %s %s " % (_(itemCap), str(pointNo + 1))) boxSizer = wx.StaticBoxSizer(box, wx.VERTICAL) # source coordinates gridSizer = wx.GridBagSizer(vgap=5, hgap=5) self.fields = [] self.data = deepcopy(data) col = 0 row = 0 iField = 0 for cell in self.data: # Select if type(cell[2]).__name__ == "list": self.fields.append( ComboBox( parent=panel, id=wx.ID_ANY, choices=cell[2], style=wx.CB_READONLY, size=(110, -1), )) # Text field else: if cell[2] == float: validator = FloatValidator() elif cell[2] == int: validator = IntegerValidator() else: validator = None if validator: self.fields.append( TextCtrl( parent=panel, id=wx.ID_ANY, validator=validator, size=(150, -1), )) else: self.fields.append( TextCtrl(parent=panel, id=wx.ID_ANY, size=(150, -1))) value = cell[1] if not isinstance(cell[1], basestring): value = str(cell[1]) self.fields[iField].SetValue(value) label = StaticText( parent=panel, id=wx.ID_ANY, label=_(parent.GetColumn(cell[0]).GetText()) + ":", ) # name of column) gridSizer.Add(label, flag=wx.ALIGN_CENTER_VERTICAL, pos=(row, col)) col += 1 gridSizer.Add(self.fields[iField], pos=(row, col)) if col % 3 == 0: col = 0 row += 1 else: col += 1 iField += 1 boxSizer.Add(gridSizer, proportion=1, flag=wx.EXPAND | wx.ALL, border=5) sizer.Add(boxSizer, proportion=1, flag=wx.EXPAND | wx.ALL, border=5) # # buttons # self.btnCancel = Button(panel, wx.ID_CANCEL) self.btnOk = Button(panel, wx.ID_OK) self.btnOk.SetDefault() btnSizer = wx.StdDialogButtonSizer() btnSizer.AddButton(self.btnCancel) btnSizer.AddButton(self.btnOk) btnSizer.Realize() sizer.Add(btnSizer, proportion=0, flag=wx.ALIGN_RIGHT | wx.ALL, border=5) panel.SetSizer(sizer) sizer.Fit(self)
def _create_layout(self): ctrl_sizer = wx.StaticBoxSizer(wx.VERTICAL, self, 'Pipeline Control') ctrl_box = ctrl_sizer.GetStaticBox() status_lbl = wx.StaticText(ctrl_box, label='Pipeline Status:') self.pipeline_status = wx.StaticText(ctrl_box, label='Not Started') self.start_btn = wx.Button(ctrl_box, label='Start') self.abort_btn = wx.Button(ctrl_box, label='Abort') self.start_btn.Bind(wx.EVT_BUTTON, self._on_start) self.abort_btn.Bind(wx.EVT_BUTTON, self._on_abort) self.abort_btn.Disable() btn_sizer = wx.BoxSizer(wx.HORIZONTAL) btn_sizer.Add(self.start_btn, flag=wx.RIGHT, border=self._FromDIP(5)) btn_sizer.Add(self.abort_btn) ctrl_grid_sizer = wx.GridBagSizer(vgap=self._FromDIP(5), hgap=self._FromDIP(5)) ctrl_grid_sizer.Add(status_lbl, (0,0), flag=wx.ALIGN_CENTER_VERTICAL) ctrl_grid_sizer.Add(self.pipeline_status, (0,1), span=(0,2), flag=wx.ALIGN_CENTER_VERTICAL) ctrl_grid_sizer.Add(btn_sizer, (1,0), span=(0,3), flag=wx.ALIGN_CENTER_HORIZONTAL) # raver_label = wx.StaticText(ctrl_box, label='Radial average processes:') # self.raver_ctrl = wx.StaticText(ctrl_box, size=self._FromDIP((40, -1))) # raver_add = wx.Button(ctrl_box, label='Add') analysis_label = wx.StaticText(ctrl_box, label='Analysis processes:') self.analysis_ctrl = wx.StaticText(ctrl_box, size=self._FromDIP((40, -1))) analysis_add = wx.Button(ctrl_box, label='Add') # raver_add.Bind(wx.EVT_BUTTON, self._add_raver_proc) analysis_add.Bind(wx.EVT_BUTTON, self._add_analysis_proc) ctrl_grid_sizer_2 = wx.FlexGridSizer(cols=3, vgap=self._FromDIP(5), hgap=self._FromDIP(5)) # ctrl_grid_sizer_2.Add(raver_label, flag=wx.ALIGN_CENTER_VERTICAL) # ctrl_grid_sizer_2.Add(self.raver_ctrl, flag=wx.ALIGN_CENTER_VERTICAL) # ctrl_grid_sizer_2.Add(raver_add, flag=wx.ALIGN_CENTER_VERTICAL) ctrl_grid_sizer_2.Add(analysis_label, flag=wx.ALIGN_CENTER_VERTICAL) ctrl_grid_sizer_2.Add(self.analysis_ctrl, flag=wx.ALIGN_CENTER_VERTICAL) ctrl_grid_sizer_2.Add(analysis_add, flag=wx.ALIGN_CENTER_VERTICAL) fprefix_label = wx.StaticText(ctrl_box, label='File prefix:') self.fprefix_ctrl = wx.TextCtrl(ctrl_box, style=wx.TE_READONLY) fprefix_btn = wx.Button(ctrl_box, label='Set') fprefix_btn.Bind(wx.EVT_BUTTON, self._on_fprefix_set) dd_label = wx.StaticText(ctrl_box, label='Data directory:') self.data_dir_ctrl = wx.TextCtrl(ctrl_box, style=wx.TE_READONLY) dd_btn = wx.Button(ctrl_box, label='Select') dd_btn.Bind(wx.EVT_BUTTON, self._on_dd_select) od_label = wx.StaticText(ctrl_box, label='Output directory:') self.output_dir_ctrl = wx.TextCtrl(ctrl_box, style=wx.TE_READONLY) od_btn = wx.Button(ctrl_box, label='Select') od_btn.Bind(wx.EVT_BUTTON, self._on_od_select) pd_label = wx.StaticText(ctrl_box, label='Profiles directory:') self.profiles_dir_ctrl = wx.TextCtrl(ctrl_box, style=wx.TE_READONLY) pd_btn = wx.Button(ctrl_box, label='Select') pd_btn.Bind(wx.EVT_BUTTON, self._on_pd_select) ad_label = wx.StaticText(ctrl_box, label='Analysis directory:') self.analysis_dir_ctrl = wx.TextCtrl(ctrl_box, style=wx.TE_READONLY) ad_btn = wx.Button(ctrl_box, label='Select') ad_btn.Bind(wx.EVT_BUTTON, self._on_ad_select) dir_grid_sizer = wx.FlexGridSizer(cols=3, vgap=self._FromDIP(5), hgap=self._FromDIP(5)) dir_grid_sizer.Add(fprefix_label, flag=wx.ALIGN_CENTER_VERTICAL) dir_grid_sizer.Add(self.fprefix_ctrl, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND) dir_grid_sizer.Add(fprefix_btn, flag=wx.ALIGN_CENTER_VERTICAL) dir_grid_sizer.Add(dd_label, flag=wx.ALIGN_CENTER_VERTICAL) dir_grid_sizer.Add(self.data_dir_ctrl, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND) dir_grid_sizer.Add(dd_btn, flag=wx.ALIGN_CENTER_VERTICAL) dir_grid_sizer.Add(od_label, flag=wx.ALIGN_CENTER_VERTICAL) dir_grid_sizer.Add(self.output_dir_ctrl, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND) dir_grid_sizer.Add(od_btn, flag=wx.ALIGN_CENTER_VERTICAL) dir_grid_sizer.Add(pd_label, flag=wx.ALIGN_CENTER_VERTICAL) dir_grid_sizer.Add(self.profiles_dir_ctrl, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND) dir_grid_sizer.Add(pd_btn, flag=wx.ALIGN_CENTER_VERTICAL) dir_grid_sizer.Add(ad_label, flag=wx.ALIGN_CENTER_VERTICAL) dir_grid_sizer.Add(self.analysis_dir_ctrl, flag=wx.ALIGN_CENTER_VERTICAL|wx.EXPAND) dir_grid_sizer.Add(ad_btn, flag=wx.ALIGN_CENTER_VERTICAL) dir_grid_sizer.AddGrowableCol(1) ctrl_sizer.Add(ctrl_grid_sizer, flag=wx.EXPAND|wx.ALL, border=self._FromDIP(5)) ctrl_sizer.Add(ctrl_grid_sizer_2, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM, border=self._FromDIP(5)) ctrl_sizer.Add(dir_grid_sizer, flag=wx.EXPAND|wx.LEFT|wx.RIGHT|wx.BOTTOM, border=self._FromDIP(5)) status_sizer = wx.StaticBoxSizer(wx.VERTICAL, self, 'Pipeline Status') status_box = status_sizer.GetStaticBox() loaded_label = wx.StaticText(status_box, label='Images loaded:') self.loaded_ctrl = wx.StaticText(status_box, size=self._FromDIP((40, -1))) averaged_label = wx.StaticText(status_box, label='Images averaged:') self.averaged_ctrl = wx.StaticText(status_box, size=self._FromDIP((40, -1))) exp_current_label = wx.StaticText(status_box, label='Ongoing experiments:') self.exp_current_ctrl = wx.StaticText(status_box, size=self._FromDIP((40, -1))) exp_in_proc_label = wx.StaticText(status_box, label='Experments processing:') self.exp_in_proc_ctrl = wx.StaticText(status_box, size=self._FromDIP((40, -1))) exp_proc_label = wx.StaticText(status_box, label='Finished experiments:') self.exp_proc_ctrl = wx.StaticText(status_box, size=self._FromDIP((40, -1))) status_grid_sizer = wx.FlexGridSizer(cols=2, vgap=self._FromDIP(5), hgap=self._FromDIP(5)) status_grid_sizer.Add(loaded_label, flag=wx.ALIGN_CENTER_VERTICAL) status_grid_sizer.Add(self.loaded_ctrl, flag=wx.ALIGN_CENTER_VERTICAL) status_grid_sizer.Add(averaged_label, flag=wx.ALIGN_CENTER_VERTICAL) status_grid_sizer.Add(self.averaged_ctrl, flag=wx.ALIGN_CENTER_VERTICAL) status_grid_sizer.Add(exp_current_label, flag=wx.ALIGN_CENTER_VERTICAL) status_grid_sizer.Add(self.exp_current_ctrl, flag=wx.ALIGN_CENTER_VERTICAL) status_grid_sizer.Add(exp_in_proc_label, flag=wx.ALIGN_CENTER_VERTICAL) status_grid_sizer.Add(self.exp_in_proc_ctrl, flag=wx.ALIGN_CENTER_VERTICAL) status_grid_sizer.Add(exp_proc_label, flag=wx.ALIGN_CENTER_VERTICAL) status_grid_sizer.Add(self.exp_proc_ctrl, flag=wx.ALIGN_CENTER_VERTICAL) status_sizer.Add(status_grid_sizer, flag=wx.EXPAND|wx.ALL) top_sizer = wx.BoxSizer(wx.VERTICAL) top_sizer.Add(ctrl_sizer, flag=wx.EXPAND) top_sizer.Add(status_sizer, flag=wx.EXPAND) self.SetSizer(top_sizer)
def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title=u"Agregar cliente", pos=wx.DefaultPosition, size=wx.Size(730, 494), style=wx.DEFAULT_DIALOG_STYLE) self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) self.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)) gbSizer1 = wx.GridBagSizer(0, 0) gbSizer1.SetFlexibleDirection(wx.BOTH) gbSizer1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) sbSizer1 = wx.StaticBoxSizer( wx.StaticBox(self, wx.ID_ANY, wx.EmptyString), wx.VERTICAL) gbSizer2 = wx.GridBagSizer(0, 0) gbSizer2.SetFlexibleDirection(wx.BOTH) gbSizer2.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.m_staticText1 = wx.StaticText(self, wx.ID_ANY, u"Código:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText1.Wrap(-1) self.m_staticText1.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.m_staticText1, wx.GBPosition(0, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) self.tc_codigo = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE) self.tc_codigo.SetMaxLength(10) self.tc_codigo.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.tc_codigo, wx.GBPosition(0, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText4 = wx.StaticText(self, wx.ID_ANY, u"Apellido y nombres:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText4.Wrap(-1) self.m_staticText4.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.m_staticText4, wx.GBPosition(1, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.tc_apenom = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(250, -1), 0) self.tc_apenom.SetMaxLength(50) self.tc_apenom.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.tc_apenom, wx.GBPosition(1, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText10 = wx.StaticText(self, wx.ID_ANY, u"Teléfonos:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText10.Wrap(-1) self.m_staticText10.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.m_staticText10, wx.GBPosition(3, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 5) self.tc_telefonos = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(250, -1), 0) self.tc_telefonos.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.tc_telefonos, wx.GBPosition(3, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText2 = wx.StaticText(self, wx.ID_ANY, u"Sección:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText2.Wrap(-1) self.m_staticText2.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.m_staticText2, wx.GBPosition(1, 2), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) self.tc_seccion = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE) self.tc_seccion.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.tc_seccion, wx.GBPosition(1, 3), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_staticText3 = wx.StaticText(self, wx.ID_ANY, u"Zona:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText3.Wrap(-1) self.m_staticText3.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.m_staticText3, wx.GBPosition(2, 2), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) self.tc_zona = wx.TextCtrl(self, wx.ID_ANY, u"403", wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE) self.tc_zona.SetMaxLength(3) self.tc_zona.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.tc_zona, wx.GBPosition(2, 3), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText5 = wx.StaticText(self, wx.ID_ANY, u"Domicilio:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText5.Wrap(-1) self.m_staticText5.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.m_staticText5, wx.GBPosition(2, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) self.tc_domicilio = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(250, -1), 0) self.tc_domicilio.SetMaxLength(50) self.tc_domicilio.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.tc_domicilio, wx.GBPosition(2, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText6 = wx.StaticText(self, wx.ID_ANY, u"Barrio:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText6.Wrap(-1) self.m_staticText6.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.m_staticText6, wx.GBPosition(4, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) self.tc_barrio = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(250, -1), 0) self.tc_barrio.SetMaxLength(50) self.tc_barrio.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.tc_barrio, wx.GBPosition(4, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText7 = wx.StaticText(self, wx.ID_ANY, u"Localidad:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText7.Wrap(-1) self.m_staticText7.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.m_staticText7, wx.GBPosition(5, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_RIGHT, 5) self.tc_localidad = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(250, -1), 0) self.tc_localidad.SetMaxLength(50) self.tc_localidad.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.tc_localidad, wx.GBPosition(5, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText9 = wx.StaticText(self, wx.ID_ANY, u"Fecha de alta:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText9.Wrap(-1) self.m_staticText9.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.m_staticText9, wx.GBPosition(6, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 5) self.tc_alta = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_CENTRE | wx.TE_READONLY) self.tc_alta.SetMaxLength(10) self.tc_alta.SetFont(wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.tc_alta, wx.GBPosition(6, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText8 = wx.StaticText(self, wx.ID_ANY, u"Comentarios:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText8.Wrap(-1) self.m_staticText8.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.m_staticText8, wx.GBPosition(7, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_RIGHT, 5) self.tc_descripcion = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(500, 100), wx.TE_MULTILINE) self.tc_descripcion.SetMaxLength(700) self.tc_descripcion.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer2.Add(self.tc_descripcion, wx.GBPosition(7, 1), wx.GBSpan(1, 4), wx.ALL, 5) sbSizer1.Add(gbSizer2, 1, wx.EXPAND, 5) gbSizer1.Add(sbSizer1, wx.GBPosition(0, 0), wx.GBSpan(1, 7), wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT, 20) self.btn_aceptar = wx.Button(self, wx.ID_OK, u"Aceptar", wx.DefaultPosition, wx.Size(100, 30), 0) self.btn_aceptar.SetFont(wx.Font(11, 70, 90, 92, False, wx.EmptyString)) gbSizer1.Add(self.btn_aceptar, wx.GBPosition(1, 5), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_RIGHT, 5) self.btn_cancelar = wx.Button(self, wx.ID_CANCEL, u"Cancelar", wx.DefaultPosition, wx.Size(100, 30), 0) self.btn_cancelar.SetFont( wx.Font(11, 70, 90, 90, False, wx.EmptyString)) gbSizer1.Add(self.btn_cancelar, wx.GBPosition(1, 6), wx.GBSpan(1, 1), wx.ALIGN_RIGHT | wx.TOP | wx.BOTTOM | wx.LEFT, 5) self.SetSizer(gbSizer1) self.Layout() self.Centre(wx.BOTH)
def createControlPanel(self): ctrlpanel = wx.Panel(self, name='Ctrl Panel') ptable = PeriodicTablePanel(ctrlpanel, onselect=self.onShowLines, tooltip_msg='Select Element for KLM Lines') self.wids['ptable'] = ptable labstyle = wx.ALIGN_LEFT | wx.ALIGN_BOTTOM | wx.EXPAND ctrlstyle = wx.ALIGN_LEFT | wx.ALIGN_BOTTOM txtstyle = wx.ALIGN_LEFT | wx.ST_NO_AUTORESIZE | wx.TE_PROCESS_ENTER Font9 = Font(9) Font10 = Font(10) Font11 = Font(11) # arrowpanel = wx.Panel(ctrlpanel) ssizer = wx.BoxSizer(wx.HORIZONTAL) for wname, dname in (('uparrow', 'up'), ('leftarrow', 'left'), ('rightarrow', 'right'), ('downarrow', 'down')): self.wids[wname] = wx.BitmapButton(arrowpanel, -1, get_icon(wname), size=(25, 25), style=wx.NO_BORDER) self.wids[wname].Bind(wx.EVT_BUTTON, partial(ptable.onKey, name=dname)) ssizer.Add(self.wids[wname], 0, wx.EXPAND | wx.ALL) self.wids['kseries'] = Check(arrowpanel, ' K ', action=self.onKLM) self.wids['lseries'] = Check(arrowpanel, ' L ', action=self.onKLM) self.wids['mseries'] = Check(arrowpanel, ' M ', action=self.onKLM) self.wids['holdbtn'] = wx.ToggleButton(arrowpanel, -1, 'Hold ', size=(65, 25)) self.wids['holdbtn'].Bind(wx.EVT_TOGGLEBUTTON, self.onToggleHold) ssizer.Add(txt(arrowpanel, ' '), 0, wx.EXPAND | wx.ALL, 0) ssizer.Add(self.wids['holdbtn'], 0, wx.EXPAND | wx.ALL, 2) ssizer.Add(self.wids['kseries'], 0, wx.EXPAND | wx.ALL, 0) ssizer.Add(self.wids['lseries'], 0, wx.EXPAND | wx.ALL, 0) ssizer.Add(self.wids['mseries'], 0, wx.EXPAND | wx.ALL, 0) pack(arrowpanel, ssizer) # roi section... rsizer = wx.GridBagSizer(4, 6) roipanel = wx.Panel(ctrlpanel, name='ROI Panel') self.wids['roilist'] = wx.ListBox(roipanel, size=(135, 120)) self.wids['roilist'].Bind(wx.EVT_LISTBOX, self.onROI) self.wids['roilist'].SetMinSize((135, 120)) self.wids['roiname'] = wx.TextCtrl(roipanel, -1, '', size=(150, -1)) # roibtns = wx.Panel(roipanel, name='ROIButtons') zsizer = wx.BoxSizer(wx.HORIZONTAL) z1 = Button(roibtns, 'Add', size=(70, 30), action=self.onNewROI) z2 = Button(roibtns, 'Delete', size=(70, 30), action=self.onConfirmDelROI) z3 = Button(roibtns, 'Rename', size=(70, 30), action=self.onRenameROI) zsizer.Add(z1, 0, wx.EXPAND | wx.ALL, 0) zsizer.Add(z2, 0, wx.EXPAND | wx.ALL, 0) zsizer.Add(z3, 0, wx.EXPAND | wx.ALL, 0) pack(roibtns, zsizer) rt1 = txt(roipanel, ' Channels:', size=75, font=Font9) rt2 = txt(roipanel, ' Energy:', size=75, font=Font9) rt3 = txt(roipanel, ' Cen/Wid:', size=75, font=Font9) m = '' self.wids['roi_msg1'] = txt(roipanel, m, size=135, font=Font9) self.wids['roi_msg2'] = txt(roipanel, m, size=135, font=Font9) self.wids['roi_msg3'] = txt(roipanel, m, size=135, font=Font9) rsizer.Add( txt(roipanel, ' Regions of Interest:', size=125, font=Font11), (0, 0), (1, 3), labstyle) rsizer.Add(self.wids['roiname'], (1, 0), (1, 3), labstyle) rsizer.Add(roibtns, (2, 0), (1, 3), labstyle) rsizer.Add(rt1, (3, 0), (1, 1), LEFT) rsizer.Add(rt2, (4, 0), (1, 1), LEFT) rsizer.Add(rt3, (5, 0), (1, 1), LEFT) rsizer.Add(self.wids['roi_msg1'], (3, 1), (1, 2), labstyle) rsizer.Add(self.wids['roi_msg2'], (4, 1), (1, 2), labstyle) rsizer.Add(self.wids['roi_msg3'], (5, 1), (1, 2), labstyle) rsizer.Add(self.wids['roilist'], (0, 3), (6, 1), wx.EXPAND | wx.ALL | wx.ALIGN_RIGHT) rsizer.SetHGap(1) pack(roipanel, rsizer) # end roi section # y scale yscalepanel = wx.Panel(ctrlpanel, name='YScalePanel') ysizer = wx.BoxSizer(wx.HORIZONTAL) ytitle = txt(yscalepanel, ' Y Axis:', font=Font10, size=80) yspace = txt(yscalepanel, ' ', font=Font10, size=20) ylog = Choice(yscalepanel, size=(80, 30), choices=['log', 'linear'], action=self.onLogLinear) yaxis = Check(yscalepanel, ' Show Y Scale ', action=self.onYAxis, default=False) self.wids['show_yaxis'] = yaxis ysizer.Add(ytitle, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 0) ysizer.Add(ylog, 0, wx.EXPAND | wx.ALL, 0) ysizer.Add(yspace, 0, wx.EXPAND | wx.ALL, 0) ysizer.Add(yaxis, 0, wx.EXPAND | wx.ALL, 0) pack(yscalepanel, ysizer) # zoom buttons zoompanel = wx.Panel(ctrlpanel, name='ZoomPanel') zsizer = wx.BoxSizer(wx.HORIZONTAL) z1 = Button(zoompanel, 'Zoom In', size=(80, 30), action=self.onZoomIn) z2 = Button(zoompanel, 'Zoom Out', size=(80, 30), action=self.onZoomOut) p1 = Button(zoompanel, 'Pan Lo', size=(75, 30), action=self.onPanLo) p2 = Button(zoompanel, 'Pan Hi', size=(75, 30), action=self.onPanHi) zsizer.Add(p1, 0, wx.EXPAND | wx.ALL, 0) zsizer.Add(p2, 0, wx.EXPAND | wx.ALL, 0) zsizer.Add(z1, 0, wx.EXPAND | wx.ALL, 0) zsizer.Add(z2, 0, wx.EXPAND | wx.ALL, 0) pack(zoompanel, zsizer) # self.wids['xray_lines'] = None if HAS_DV: dvstyle = dv.DV_SINGLE | dv.DV_VERT_RULES | dv.DV_ROW_LINES xlines = dv.DataViewListCtrl(ctrlpanel, style=dvstyle) self.wids['xray_lines'] = xlines xlines.AppendTextColumn('Line ', width=55) xlines.AppendTextColumn('Energy(keV) ', width=110) xlines.AppendTextColumn('Strength ', width=85) xlines.AppendTextColumn('Levels ', width=75) for col in (0, 1, 2, 3): this = xlines.Columns[col] this.Sortable = True align = RIGHT if col in (0, 3): align = wx.ALIGN_LEFT this.Alignment = this.Renderer.Alignment = align xlines.SetMinSize((300, 240)) xlines.Bind(dv.EVT_DATAVIEW_SELECTION_CHANGED, self.onSelectXrayLine) # main layout # may have to adjust comparison.... store = xlines.GetStore() sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(roipanel, 0, labstyle) sizer.Add(lin(ctrlpanel, 195), 0, labstyle) sizer.Add(yscalepanel, 0, wx.ALIGN_RIGHT | wx.EXPAND | wx.ALL) sizer.Add(zoompanel, 0, wx.ALIGN_RIGHT | wx.EXPAND | wx.ALL) sizer.Add(lin(ctrlpanel, 195), 0, labstyle) sizer.Add(ptable, 0, wx.ALIGN_RIGHT | wx.EXPAND | wx.ALL, 4) sizer.Add(arrowpanel, 0, labstyle) sizer.Add(lin(ctrlpanel, 195), 0, labstyle) if self.wids['xray_lines'] is not None: sizer.Add(xlines, 0, wx.ALIGN_CENTER | wx.GROW | wx.ALL | wx.EXPAND) pack(ctrlpanel, sizer) return ctrlpanel
def __init__(self, parent, gui_size, cfg): """Constructor""" wx.Panel.__init__(self, parent=parent) # variable initilization self.config = cfg self.bodyparts = [] # design the panel self.sizer = wx.GridBagSizer(5, 5) text = wx.StaticText(self, label="DeepLabCut - Step 6. Evaluate Network") self.sizer.Add(text, pos=(0, 0), flag=wx.TOP | wx.LEFT | wx.BOTTOM, border=15) # Add logo of DLC icon = wx.StaticBitmap(self, bitmap=wx.Bitmap(LOGO_PATH)) self.sizer.Add(icon, pos=(0, 4), flag=wx.TOP | wx.RIGHT | wx.ALIGN_RIGHT, border=5) line1 = wx.StaticLine(self) self.sizer.Add(line1, pos=(1, 0), span=(1, 5), flag=wx.EXPAND | wx.BOTTOM, border=10) self.cfg_text = wx.StaticText(self, label="Select the config file") self.sizer.Add(self.cfg_text, pos=(2, 0), flag=wx.TOP | wx.LEFT, border=5) if sys.platform == "darwin": self.sel_config = wx.FilePickerCtrl( self, path="", style=wx.FLP_USE_TEXTCTRL, message="Choose the config.yaml file", wildcard="*.yaml", ) else: self.sel_config = wx.FilePickerCtrl( self, path="", style=wx.FLP_USE_TEXTCTRL, message="Choose the config.yaml file", wildcard="config.yaml", ) # self.sel_config = wx.FilePickerCtrl(self, path="",style=wx.FLP_USE_TEXTCTRL,message="Choose the config.yaml file", wildcard="config.yaml") self.sizer.Add(self.sel_config, pos=(2, 1), span=(1, 3), flag=wx.TOP | wx.EXPAND, border=5) self.sel_config.SetPath(self.config) self.sel_config.Bind(wx.EVT_FILEPICKER_CHANGED, self.select_config) sb = wx.StaticBox(self, label="Attributes") boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL) self.hbox1 = wx.BoxSizer(wx.HORIZONTAL) self.hbox2 = wx.BoxSizer(wx.HORIZONTAL) self.hbox3 = wx.BoxSizer(wx.HORIZONTAL) config_file = auxiliaryfunctions.read_config(self.config) shuffles_text = wx.StaticBox(self, label="Specify the shuffle") shuffles_text_boxsizer = wx.StaticBoxSizer(shuffles_text, wx.VERTICAL) self.shuffles = wx.SpinCtrl(self, value="1", min=0, max=100) shuffles_text_boxsizer.Add(self.shuffles, 1, wx.EXPAND | wx.TOP | wx.BOTTOM, 10) #trainingset = wx.StaticBox(self, label="Specify the trainingset index") #trainingset_boxsizer = wx.StaticBoxSizer(trainingset, wx.VERTICAL) #self.trainingset = wx.SpinCtrl(self, value="0", min=0, max=100) #trainingset_boxsizer.Add( # self.trainingset, 1, wx.EXPAND | wx.TOP | wx.BOTTOM, 10 #) self.plot_choice = wx.RadioBox( self, label="Want to plot predictions (as in standard DLC projects)?", choices=["Yes", "No"], majorDimension=1, style=wx.RA_SPECIFY_COLS, ) self.plot_choice.SetSelection(0) self.plot_scoremaps = wx.RadioBox( self, label="Want to plot maps (ALL images): scoremaps, PAFs, locrefs?", choices=["Yes", "No"], majorDimension=1, style=wx.RA_SPECIFY_COLS, ) self.plot_scoremaps.SetSelection(1) self.bodypart_choice = wx.RadioBox( self, label="Compare all bodyparts?", choices=["Yes", "No"], majorDimension=1, style=wx.RA_SPECIFY_COLS, ) self.bodypart_choice.Bind(wx.EVT_RADIOBOX, self.chooseOption) if config_file.get("multianimalproject", False): bodyparts = config_file["multianimalbodyparts"] else: bodyparts = config_file["bodyparts"] self.bodyparts_to_compare = wx.CheckListBox( self, choices=bodyparts, style=0, name="Select the bodyparts") self.bodyparts_to_compare.Bind(wx.EVT_CHECKLISTBOX, self.getbp) self.bodyparts_to_compare.Hide() self.hbox1.Add(shuffles_text_boxsizer, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) #self.hbox1.Add(trainingset_boxsizer, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) self.hbox1.Add(self.plot_scoremaps, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) self.hbox2.Add(self.plot_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) self.hbox2.Add(self.bodypart_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) self.hbox2.Add(self.bodyparts_to_compare, 10, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) boxsizer.Add(self.hbox1, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 10) boxsizer.Add(self.hbox2, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 10) self.sizer.Add( boxsizer, pos=(3, 0), span=(1, 5), flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, border=10, ) self.help_button = wx.Button(self, label="Help") self.sizer.Add(self.help_button, pos=(4, 0), flag=wx.LEFT, border=10) self.help_button.Bind(wx.EVT_BUTTON, self.help_function) self.ok = wx.Button(self, label="RUN: Evaluate Network") self.sizer.Add(self.ok, pos=(4, 3)) self.ok.Bind(wx.EVT_BUTTON, self.evaluate_network) self.ok = wx.Button(self, label="Optional: Plot 3 test maps") self.sizer.Add(self.ok, pos=(5, 3)) self.ok.Bind(wx.EVT_BUTTON, self.plot_maps) self.cancel = wx.Button(self, label="Reset") self.sizer.Add(self.cancel, pos=(4, 1), span=(1, 1), flag=wx.BOTTOM | wx.RIGHT, border=10) self.cancel.Bind(wx.EVT_BUTTON, self.cancel_evaluate_network) if config_file.get("multianimalproject", False): self.inf_cfg_text = wx.Button( self, label="Edit the inference_config.yaml") self.inf_cfg_text.Bind(wx.EVT_BUTTON, self.edit_inf_config) self.sizer.Add( self.inf_cfg_text, pos=(4, 2), span=(1, 1), flag=wx.BOTTOM | wx.RIGHT, border=10, ) self.sizer.AddGrowableCol(2) self.SetSizer(self.sizer) self.sizer.Fit(self)
def __init__(self, parent, col_values, misc_values): wx.Dialog.__init__(self, parent, -1, 'Data loader settings') box_sizer = wx.BoxSizer(wx.HORIZONTAL) # Make the box for putting in the columns col_box = wx.StaticBox(self, -1, "Columns" ) col_box_sizer = wx.StaticBoxSizer(col_box, wx.VERTICAL ) #col_values = {'y': 1,'x': 0,'y error': 1} col_grid = wx.GridBagSizer(len(col_values), 2) self.col_controls = col_values.copy() keys = list(col_values.keys()) keys.sort() for i, name in enumerate(keys): text = wx.StaticText(self, -1, name+': ') control = wx.SpinCtrl(self) control.SetRange(0,100) control.SetValue(col_values[name]) col_grid.Add(text, (i,0),\ flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL,\ border = 5) col_grid.Add(control, (i,1),\ flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL,\ border = 5) self.col_controls[name] = control col_box_sizer.Add(col_grid, 0, wx.ALIGN_CENTRE|wx.ALL, 5) box_sizer.Add(col_box_sizer, 0, wx.ALIGN_CENTRE|wx.ALL|wx.EXPAND, 5) col_box = wx.StaticBox(self, -1, "Misc" ) col_box_sizer = wx.StaticBoxSizer(col_box, wx.VERTICAL ) # Lets add another box for comments and rows to skip #misc_values = {'Comment': '#', 'Skip rows': 0,'Delimiter': 'None'} col_grid = wx.GridBagSizer(len(misc_values), 2) self.misc_controls = misc_values.copy() keys = list(misc_values.keys()) keys.sort() for i, name in enumerate(keys): text = wx.StaticText(self, -1, name+': ') if type(misc_values[name]) == type(1): control = wx.SpinCtrl(self) control.SetRange(0,100) control.SetValue(misc_values[name]) else: control = wx.TextCtrl(self, value = misc_values[name],\ style = wx.EXPAND) col_grid.Add(text, (i,0),\ flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL,\ border = 5) col_grid.Add(control, (i,1),\ flag = wx.ALIGN_RIGHT|wx.ALIGN_CENTER_VERTICAL,\ border = 5) self.misc_controls[name] = control col_box_sizer.Add(col_grid, 0, wx.ALIGN_CENTRE|wx.ALL, 5) box_sizer.Add(col_box_sizer, 0, wx.ALIGN_CENTRE|wx.ALL|wx.EXPAND, 5) button_sizer = wx.StdDialogButtonSizer() okay_button = wx.Button(self, wx.ID_OK) okay_button.SetDefault() button_sizer.AddButton(okay_button) button_sizer.AddButton(wx.Button(self, wx.ID_CANCEL)) button_sizer.Realize() sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(box_sizer, 1, wx.GROW|wx.ALIGN_CENTER_HORIZONTAL, 20) line = wx.StaticLine(self, -1, size=(20,-1), style=wx.LI_HORIZONTAL) sizer.Add(line, 0, wx.GROW|wx.ALIGN_CENTER_HORIZONTAL, 30) sizer.Add(button_sizer,0,\ flag = wx.ALIGN_RIGHT, border = 20) self.SetSizer(sizer) sizer.Fit(self) self.Layout()
def buildTestInfo(self, panel): test_info = wx.StaticBox(panel, label="测试信息:") test_info_sizer = wx.StaticBoxSizer(test_info, wx.VERTICAL) # 在 test_info的布局中插入横向间隔为 5 的 GridBagSizer 布局 grid_bag_sizer = wx.GridBagSizer(5, 0) # 在 GridBagSizer 中逐行增加内容,每行的内容放在一个横向的 BoxSizer 中 line1 = wx.BoxSizer(wx.HORIZONTAL) test_app_name = wx.StaticText(panel, label="测试APP: ") test_app_input = wx.TextCtrl(panel) version_name = wx.StaticText(panel, label="版本: ") version_input = wx.TextCtrl(panel) line1.Add(test_app_name, flag=wx.RIGHT, border=10) line1.Add(test_app_input, flag=wx.RIGHT, border=10) line1.Add(version_name) line1.Add(version_input) grid_bag_sizer.Add(line1, pos=(0, 0), span=(1, 3)) line2 = wx.BoxSizer(wx.HORIZONTAL) account_and_pwd = wx.StaticText(panel, label="测试账号及密码: ") area = wx.ComboBox(panel, value='中国', choices=["中国", "美国", "欧洲", "印度"]) grid_bag_sizer.Add(area, pos=(1, 3), span=(1, 1)) # 添加事件处理 self.Bind(wx.EVT_COMBOBOX, self.on_combobox, area) account_and_pwd_input = wx.TextCtrl(panel, size=(200, 20)) line2.Add(account_and_pwd, flag=wx.Top, border=3) line2.Add(area, flag=wx.LEFT, border=10) line2.Add(account_and_pwd_input, flag=wx.LEFT, border=10) grid_bag_sizer.Add(line2, pos=(1, 0), span=(1, 3)) line3 = wx.BoxSizer(wx.HORIZONTAL) test_mobile = wx.StaticText(panel, label="测试手机型号及版本: ") test_mobile_input1 = wx.TextCtrl(panel, size=(150, 20)) test_mobile_input2 = wx.TextCtrl(panel, size=(150, 20)) line3.Add(test_mobile, flag=wx.RIGHT, border=10) line3.Add(test_mobile_input1, flag=wx.RIGHT, border=10) line3.Add(test_mobile_input2) grid_bag_sizer.Add(line3, pos=(2, 0), span=(1, 3)) line4 = wx.BoxSizer(wx.HORIZONTAL) device_name = wx.StaticText(panel, label="设备名称: ") device_name_input = wx.TextCtrl(panel) device_id = wx.StaticText(panel, label="设备ID: ") device_id_input = wx.TextCtrl(panel) line4.Add(device_name, flag=wx.RIGHT, border=10) line4.Add(device_name_input, flag=wx.RIGHT, border=10) line4.Add(device_id) line4.Add(device_id_input) grid_bag_sizer.Add(line4, pos=(3, 0), span=(1, 3)) line5 = wx.BoxSizer(wx.HORIZONTAL) pid_name = wx.StaticText(panel, label="PID: ") pid_name_input = wx.TextCtrl(panel) uiid_name = wx.StaticText(panel, label="UIID: ") uiid_name_input = wx.TextCtrl(panel) line5.Add(pid_name, flag=wx.RIGHT, border=10) line5.Add(pid_name_input, flag=wx.RIGHT, border=30) line5.Add(uiid_name) line5.Add(uiid_name_input) grid_bag_sizer.Add(line5, pos=(4, 0), span=(1, 3)) line6 = wx.BoxSizer(wx.HORIZONTAL) firmware_key = wx.StaticText(panel, label="固件 Key: ") firmware_key_input = wx.TextCtrl(panel) firmware_version = wx.StaticText(panel, label="固件版本: ") firmware_version_input = wx.TextCtrl(panel) line6.Add(firmware_key, flag=wx.RIGHT, border=10) line6.Add(firmware_key_input, flag=wx.RIGHT, border=30) line6.Add(firmware_version) line6.Add(firmware_version_input) grid_bag_sizer.Add(line6, pos=(5, 0), span=(1, 3)) test_info_sizer.Add(grid_bag_sizer, flag=wx.ALL, border=5) return test_info_sizer
def __init__(self, parent): wx.Panel.__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(931, 545), style=wx.TAB_TRAVERSAL) bSizer9 = wx.BoxSizer(wx.VERTICAL) gbSizer5 = wx.GridBagSizer(0, 0) gbSizer5.SetFlexibleDirection(wx.BOTH) gbSizer5.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.m_staticText21 = wx.StaticText(self, wx.ID_ANY, u"Date of invoice: *", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText21.Wrap(-1) gbSizer5.Add(self.m_staticText21, wx.GBPosition(0, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_textbill_date = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) gbSizer5.Add(self.m_textbill_date, wx.GBPosition(0, 1), wx.GBSpan(1, 1), wx.ALL | wx.EXPAND, 5) self.m_staticText32 = wx.StaticText(self, wx.ID_ANY, u"Symbol/Order:", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT) self.m_staticText32.Wrap(-1) gbSizer5.Add(self.m_staticText32, wx.GBPosition(0, 5), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL, 5) self.m_textSTT = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(30, -1), 0) gbSizer5.Add(self.m_textSTT, wx.GBPosition(0, 7), wx.GBSpan(1, 1), wx.ALL, 5) self.m_textSTT.SetFont(wx.Font(9, 74, 90, 92, False, "Arial")) self.m_textsymbol = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(60, -1), 0) gbSizer5.Add(self.m_textsymbol, wx.GBPosition(0, 6), wx.GBSpan(1, 1), wx.ALL | wx.EXPAND, 5) self.m_textsymbol.SetFont(wx.Font(9, 74, 90, 92, False, "Arial")) self.m_staticText22 = wx.StaticText(self, wx.ID_ANY, u"Customer name:* ", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText22.Wrap(-1) gbSizer5.Add(self.m_staticText22, wx.GBPosition(1, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_staticText23 = wx.StaticText(self, wx.ID_ANY, u"Address:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText23.Wrap(-1) gbSizer5.Add(self.m_staticText23, wx.GBPosition(2, 0), wx.GBSpan(1, 1), wx.ALL, 5) self.m_textaddress = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) gbSizer5.Add(self.m_textaddress, wx.GBPosition(2, 1), wx.GBSpan(1, 5), wx.ALL | wx.EXPAND, 5) self.m_staticText24 = wx.StaticText(self, wx.ID_ANY, u"Contact phone:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText24.Wrap(-1) gbSizer5.Add(self.m_staticText24, wx.GBPosition(1, 2), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_textphone_number = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) gbSizer5.Add(self.m_textphone_number, wx.GBPosition(1, 3), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText25 = wx.StaticText(self, wx.ID_ANY, u"Payment method:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText25.Wrap(-1) gbSizer5.Add(self.m_staticText25, wx.GBPosition(3, 2), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_textHTTT = wx.TextCtrl(self, wx.ID_ANY, u"Cash", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer5.Add(self.m_textHTTT, wx.GBPosition(3, 3), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText26 = wx.StaticText(self, wx.ID_ANY, u"Staff name:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText26.Wrap(-1) gbSizer5.Add(self.m_staticText26, wx.GBPosition(3, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) m_choicestaff_nameChoices = [] self.m_choicestaff_name = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_choicestaff_nameChoices, 0) self.m_choicestaff_name.SetSelection(0) gbSizer5.Add(self.m_choicestaff_name, wx.GBPosition(3, 1), wx.GBSpan(1, 1), wx.ALL | wx.EXPAND, 5) self.m_staticText27 = wx.StaticText(self, wx.ID_ANY, u"Status:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText27.Wrap(-1) gbSizer5.Add(self.m_staticText27, wx.GBPosition(3, 4), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) m_choicestatusChoices = [] self.m_choicestatus = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_choicestatusChoices, 0) self.m_choicestatus.SetSelection(0) gbSizer5.Add(self.m_choicestatus, wx.GBPosition(3, 5), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText28 = wx.StaticText(self, wx.ID_ANY, u"Note:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText28.Wrap(-1) gbSizer5.Add(self.m_staticText28, wx.GBPosition(4, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_textnote = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) gbSizer5.Add(self.m_textnote, wx.GBPosition(4, 1), wx.GBSpan(1, 5), wx.ALL | wx.EXPAND, 5) m_choiceHangChoices = [] self.m_choiceHang = wx.Choice(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_choiceHangChoices, 0) self.m_choiceHang.SetSelection(0) gbSizer5.Add(self.m_choiceHang, wx.GBPosition(5, 1), wx.GBSpan(1, 1), wx.ALL | wx.EXPAND, 5) self.m_btnXoadong = wx.Button(self, wx.ID_ANY, u"Delete line", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer5.Add(self.m_btnXoadong, wx.GBPosition(5, 2), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText35 = wx.StaticText(self, wx.ID_ANY, u"Select product:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText35.Wrap(-1) gbSizer5.Add(self.m_staticText35, wx.GBPosition(5, 0), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) m_cbocustomer_nameChoices = [] self.m_cbocustomer_name = wx.ComboBox(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(150, -1), m_cbocustomer_nameChoices, 0) gbSizer5.Add(self.m_cbocustomer_name, wx.GBPosition(1, 1), wx.GBSpan(1, 1), wx.ALL, 5) bSizer9.Add(gbSizer5, 1, wx.EXPAND, 5) bSizer11 = wx.BoxSizer(wx.VERTICAL) self.m_gridSource = wx.grid.Grid(self, wx.ID_ANY, wx.DefaultPosition, wx.Size(-1, 250), 0) # Grid self.m_gridSource.CreateGrid(0, 10) self.m_gridSource.EnableEditing(True) self.m_gridSource.EnableGridLines(True) self.m_gridSource.EnableDragGridSize(False) self.m_gridSource.SetMargins(0, 0) # Columns self.m_gridSource.SetColSize(0, 80) self.m_gridSource.SetColSize(1, 200) self.m_gridSource.SetColSize(2, 80) self.m_gridSource.SetColSize(3, 80) self.m_gridSource.SetColSize(4, 80) self.m_gridSource.SetColSize(5, 80) self.m_gridSource.SetColSize(6, 80) self.m_gridSource.SetColSize(7, 80) self.m_gridSource.SetColSize(8, 80) self.m_gridSource.SetColSize(9, 200) self.m_gridSource.EnableDragColMove(False) self.m_gridSource.EnableDragColSize(True) self.m_gridSource.SetColLabelSize(30) self.m_gridSource.SetColLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE) # Rows self.m_gridSource.EnableDragRowSize(True) self.m_gridSource.SetRowLabelSize(40) self.m_gridSource.SetRowLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE) # Label Appearance # Cell Defaults self.m_gridSource.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP) bSizer11.Add(self.m_gridSource, 0, wx.ALL | wx.EXPAND, 5) bSizer9.Add(bSizer11, 1, wx.EXPAND, 5) gbSizer6 = wx.GridBagSizer(0, 0) gbSizer6.SetFlexibleDirection(wx.BOTH) gbSizer6.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.m_staticText29 = wx.StaticText(self, wx.ID_ANY, u"Sub total:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText29.Wrap(-1) gbSizer6.Add(self.m_staticText29, wx.GBPosition(0, 4), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_staticText33 = wx.StaticText(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText33.Wrap(-1) gbSizer6.Add(self.m_staticText33, wx.GBPosition(0, 0), wx.GBSpan(1, 1), wx.ALL, 5) self.m_textproduct_total_price = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) gbSizer6.Add(self.m_textproduct_total_price, wx.GBPosition(0, 5), wx.GBSpan(1, 1), wx.ALL, 5) self.m_textproduct_total_price.SetFont( wx.Font(9, 74, 90, 92, False, "Arial")) self.m_staticText30 = wx.StaticText(self, wx.ID_ANY, u"Tax/Fee:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText30.Wrap(-1) gbSizer6.Add(self.m_staticText30, wx.GBPosition(0, 6), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_texttax_amount = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) gbSizer6.Add(self.m_texttax_amount, wx.GBPosition(0, 7), wx.GBSpan(1, 1), wx.ALL, 5) self.m_texttax_amount.SetFont(wx.Font(9, 74, 90, 92, False, "Arial")) self.m_staticText31 = wx.StaticText(self, wx.ID_ANY, u"Total:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText31.Wrap(-1) gbSizer6.Add(self.m_staticText31, wx.GBPosition(0, 8), wx.GBSpan(1, 1), wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_texttotal = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) gbSizer6.Add(self.m_texttotal, wx.GBPosition(0, 9), wx.GBSpan(1, 1), wx.ALL, 5) self.m_texttotal.SetFont(wx.Font(9, 74, 90, 92, False, "Arial")) bSizer9.Add(gbSizer6, 1, wx.EXPAND, 5) gbSizer7 = wx.GridBagSizer(0, 0) gbSizer7.SetFlexibleDirection(wx.BOTH) gbSizer7.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.m_staticline1 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.Size(915, -1), wx.LI_HORIZONTAL) gbSizer7.Add(self.m_staticline1, wx.GBPosition(0, 0), wx.GBSpan(1, 7), wx.ALL, 5) self.m_btnDong = wx.Button(self, wx.ID_ANY, u"Close", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer7.Add(self.m_btnDong, wx.GBPosition(1, 4), wx.GBSpan(1, 1), wx.ALL, 5) self.m_staticText36 = wx.StaticText( self, wx.ID_ANY, u" ", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText36.Wrap(-1) gbSizer7.Add(self.m_staticText36, wx.GBPosition(1, 0), wx.GBSpan(1, 1), wx.ALL, 5) self.m_btnIn = wx.Button(self, wx.ID_ANY, u"In", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer7.Add(self.m_btnIn, wx.GBPosition(1, 2), wx.GBSpan(1, 1), wx.ALL, 5) self.m_btnThem = wx.Button(self, wx.ID_ANY, u"Add record", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer7.Add(self.m_btnThem, wx.GBPosition(1, 3), wx.GBSpan(1, 1), wx.ALL, 5) bSizer9.Add(gbSizer7, 1, wx.EXPAND, 5) self.SetSizer(bSizer9) self.Layout() # Connect Events self.m_btnDong.Bind(wx.EVT_BUTTON, self.m_btnDongOnButtonClick) self.m_btnIn.Bind(wx.EVT_BUTTON, self.m_btnInOnButtonClick) self.m_btnThem.Bind(wx.EVT_BUTTON, self.m_btnThemOnButtonClick) self.m_choiceHang.Bind(wx.EVT_CHOICE, self.m_choiceHangOnChoice) self.m_btnXoadong.Bind(wx.EVT_BUTTON, self.m_btnXoadongOnButtonClick)
def __init__(self, *args, **kwargs): wx.Frame.__init__(self, *args, **kwargs) ## Creating Menubar menubar = wx.MenuBar() filemenu = wx.Menu() file1 = filemenu.Append(wx.ID_NEW, 'New', 'New File') file2 = filemenu.Append(wx.ID_OPEN, 'Open', 'Open File') edit_submenu = wx.Menu() edit_submenu.Append(wx.ID_ANY, 'Select') edit_submenu.Append(wx.ID_ANY, 'Copy') edit_submenu.Append(wx.ID_ANY, 'Paste') filemenu.Append(wx.ID_EDIT, '&Edit', edit_submenu) file4 = filemenu.Append(wx.ID_SAVE, 'Save', 'Save File') file5 = filemenu.Append(wx.ID_SAVEAS, 'Save As', 'Save As File') file6 = filemenu.Append(wx.ID_CLOSE, 'Close', 'Close File') menubar.Append(filemenu, '&File') network_menu = wx.Menu() net1 = network_menu.Append(wx.ID_NETWORK, 'net1', 'Network1') net2 = network_menu.Append(wx.ID_PREVIEW, 'net2', 'Network2') net3 = network_menu.Append(wx.ID_SELECT_COLOR, 'net3', 'Network3') menubar.Append(network_menu, '&Network') netisch_menu = wx.Menu() netisch1 = netisch_menu.Append(wx.ID_VIEW_DETAILS, 'view', 'View NeTisch') netisch2 = netisch_menu.Append(wx.ID_VIEW_LIST, 'netisch2', 'List NeTisch') menubar.Append(netisch_menu, '&NeTisch') help_menu = wx.Menu() aboutmenu = help_menu.Append(wx.ID_ABOUT, 'About NeTisch', 'About NeTisch') menubar.Append(help_menu, '&Help') self.SetMenuBar(menubar) self.SetSize(900, 900) self.Centre() ## Creating Iconbar toolbar1 = self.CreateToolBar() toolbar1.AddTool(wx.ID_OPEN, 'Open/Load', wx.Bitmap('open.png')) toolbar1.AddTool(wx.ID_PREVIEW, 'Run', wx.Bitmap('play.png')) toolbar1.AddTool(wx.ID_VIEW_DETAILS, 'ViewCQ', wx.Bitmap('viewcq.png')) toolbar1.AddTool(wx.ID_VIEW_LARGEICONS, 'ViewOpt-top', wx.Bitmap('viewopttop.png')) toolbar1.AddTool(wx.ID_VIEW_SMALLICONS, 'VisSchedule', wx.Bitmap('visschedule.png')) toolbar1.EnableTool(wx.ID_REDO, False) toolbar1.AddSeparator() toolbar1.Realize() self.splitter_window = wx.SplitterWindow(self, id=wx.ID_ANY, style=wx.SP_3D) self.nav_canvas = FloatCanvas.FloatCanvas(self.splitter_window, size=(600, 900), BackgroundColor="IVORY") self.nav_canvas.InitAll() self.properties_panel = wx.Panel(self.splitter_window, id=wx.ID_ANY) self.splitter_window.SplitVertically(self.nav_canvas, self.properties_panel) self.nav_canvas.Bind(FloatCanvas.EVT_LEFT_DOWN, self.OnLeftDown) # Creating StatusBar self.CreateStatusBar() self.SetStatusText("NeTisch - Graphical User Interface") self.nav_canvas.Draw() # Creating Panel-Network Design attributes sizer = wx.GridBagSizer() text1 = wx.StaticText(self.properties_panel, -1, label="Network Design ::") sizer.Add(text1, pos=(0, 0), flag=wx.LEFT | wx.TOP, border=10) line = wx.StaticLine(self.properties_panel) sizer.Add(line, pos=(1, 0), span=(1, 12), flag=wx.EXPAND | wx.BOTTOM, border=10) text2 = wx.StaticText(self.properties_panel, -1, "Load:") sizer.Add(text2, pos=(2, 0), flag=wx.LEFT | wx.TOP, border=10) button1 = wx.Button(self.properties_panel, label="Browse...") sizer.Add(button1, pos=(2, 1), flag=wx.TOP | wx.LEFT, border=5) self.Bind(wx.EVT_BUTTON, self.OnClickBrowse, button1) line1 = wx.StaticLine(self.properties_panel) sizer.Add(line1, pos=(4, 0), span=(1, 12), flag=wx.EXPAND | wx.BOTTOM, border=10) staticbox = wx.StaticBox(self.properties_panel, label="Gen C.Q:") staticboxsizer = wx.StaticBoxSizer(staticbox, wx.VERTICAL) combo1 = wx.ComboBox(self.properties_panel, -1, "Select: ", pos=(7, 0), size=(150, 30), choices=drop1, style=wx.CB_DROPDOWN) staticboxsizer.Add(combo1, 0, wx.ALL | wx.LEFT, 10) sizer.Add(staticboxsizer, pos=(6, 0), span=(1, 12), flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, border=10) self.Bind(wx.EVT_COMBOBOX, self.OnGenCQ, combo1) sbox = wx.StaticBox(self.properties_panel, label="Optimize:") sboxsizer = wx.StaticBoxSizer(sbox, wx.VERTICAL) combo2 = wx.ComboBox(self.properties_panel, -1, "Select: ", pos=(11, 0), size=(150, 30), choices=drop2, style=wx.CB_DROPDOWN) sboxsizer.Add(combo2, 0, wx.ALL | wx.LEFT, 10) sizer.Add(sboxsizer, pos=(10, 0), span=(1, 12), flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, border=10) self.Bind(wx.EVT_COMBOBOX, self.OnOptimize, combo2) sb = wx.StaticBox(self.properties_panel, label="Schedule:") sbsizer = wx.StaticBoxSizer(sb, wx.VERTICAL) combo4 = wx.ComboBox(self.properties_panel, -1, "Select: ", pos=(15, 0), size=(150, 30), choices=drop3, style=wx.CB_DROPDOWN) sbsizer.Add(combo4, 0, wx.ALL | wx.LEFT, 10) sizer.Add(sbsizer, pos=(14, 0), span=(1, 12), flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, border=10) self.Bind(wx.EVT_COMBOBOX, self.OnSchedule, combo4) self.properties_panel.SetSizerAndFit(sizer) self.Show(True)
def __init__(self, parent): super(ButtonsPanel, self).__init__(parent)# , style=wx.SIMPLE_BORDER | wx.ALIGN_CENTER) print "init buttonsPanel" self.SetBackgroundColour('white') buttonGBS = wx.GridBagSizer(5, 5) # Start Button # startButton = wx.Button(self, id=-1, label="Start") # Ensure the services have fully started up # rospy.wait_for_service('get_flights') # # Get flight script names # get_flights_srv = rospy.ServiceProxy('get_flights', GetFlights) # flight_names = get_flight_srv(empty=[]) ########################################################################################################################### # Wait for service startup rospy.wait_for_service('/redbird/flight_director/get_flights') rospy.wait_for_service('/redbird/flight_director/start_flight') # Setup services self._get_flights_serv = rospy.ServiceProxy('/redbird/flight_director/get_flights', GetFlights) self._start_flights_serv = rospy.ServiceProxy('/redbird/flight_director/start_flight', StartFlight) ########################################################################################################################### self.flight_names = self._get_flights_serv(Empty()).flights # print "flight names == " + flight_names self.startDropDown = wx.Choice(self, choices=self.flight_names, name="Available flights") self.startDropDown.SetSelection(0) # buttonGBS.Add(startButton, pos=(0, 0), flag=wx.ALL, border=1) buttonGBS.Add(self.startDropDown, pos=(0, 0), span=(1, 5), flag=wx.ALL, border=1) self.startDropDown.Bind(wx.EVT_CHOICE, self.chooseFlightScript) # startButton.Bind(wx.EVT_BUTTON, self.startClicked) # Start Button startButton = wx.Button(self, id=-1, label="Start") buttonGBS.Add(startButton, pos=(1, 0), span=(1, 5), flag=wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, border=1) startButton.Bind(wx.EVT_BUTTON, self.startClicked) # Stop/Land Button landButton = wx.Button(self, id=-1, label="Stop/Land") """ buttonGBS.Add(landButton, pos=(2, 0), span=(1, 5), flag=wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, border=1) landButton.Bind(wx.EVT_BUTTON, self.landClicked) """ # Kill Button button = wx.Button(self, id=-1, label="Kill") """ buttonGBS.Add(button, pos=(3, 0), span=(1, 5), flag=wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, border=1) button.Bind(wx.EVT_BUTTON, self.killClicked) """ # Refresh Button button = wx.Button(self, id=-1, label="Refresh") buttonGBS.Add(button, pos=(2, 0), span=(1, 5), flag=wx.TOP | wx.BOTTOM | wx.ALIGN_CENTER_HORIZONTAL, border=1) button.Bind(wx.EVT_BUTTON, self.refreshClicked) buttonGBS.AddGrowableCol(buttonGBS.GetEffectiveColsCount() - 1) buttonGBS.AddGrowableRow(buttonGBS.GetEffectiveRowsCount() - 1) self.SetSizerAndFit(buttonGBS) self.grabData()
def InitUI(self): self.mainSizer = wx.GridBagSizer(5, 5) self.metadataTemplatesLbl = wx.StaticText( self, label="Metadata Template name") self.metadataTemplatesLbl.ToolTip = "List of Metadata Templates available." self.metadataTemplateName = wx.TextCtrl(self) self.metadataTemplateName.ToolTip = "Name of new Metadata Template." self.metadataTypesLbl = wx.StaticText(self, label="Metadata Types") self.metadataTypesLbl.ToolTip = "List of Metadata Types." self.metadataTypesListBox = wx.ListBox(self, style=wx.LB_MULTIPLE) self.metadataTypesListBox.ToolTip = "List of Metadata Types." self.metadataTypesListBox.Items = dtkglobal.metadataTypes self.btnAddMetadataTemplate = wx.Button(self, label="Add Metadata Template") self.btnAddMetadataTemplate.Bind(wx.EVT_BUTTON, self.AddMetadataTemplate) row = 0 col = 0 self.mainSizer.Add(self.metadataTemplatesLbl, pos=(row, col), flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, border=5) row = 0 col = 1 self.mainSizer.Add( self.metadataTemplateName, pos=(row, col), span=(0, 10), flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT | wx.ALIGN_RIGHT, border=5, ) row = 1 col = 0 self.mainSizer.Add(self.metadataTypesLbl, pos=(row, col), flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, border=5) row = 1 col = 1 self.mainSizer.AddGrowableRow(row) self.mainSizer.Add( self.metadataTypesListBox, pos=(row, col), span=(0, 10), flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, border=5, ) row = 2 col = 1 self.mainSizer.Add( self.btnAddMetadataTemplate, pos=(row, col), span=(0, 10), flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.ALIGN_RIGHT, border=5, ) self.mainSizer.AddGrowableCol(col) self.mainSizer.SetEmptyCellSize((0, 0)) self.Layout() self.Fit() self.SetSizer(self.mainSizer)
def __init__(self, parent): super(VehicleStatePanel, self).__init__(parent)#, style=wx.SIMPLE_BORDER) print "init VehicleStatePanel" # UNCOMMENT THIS TO GET THE VEHICLE STATE DATA==================================================================== self.velocitySubscriber = rospy.Subscriber("/mavros/local_position/velocity", TwistStamped, self.updateVelocity) self.altitudeAndAttitudeSubscriber = rospy.Subscriber("/mavros/local_position/pose", PoseStamped, self.updateAltitudeAndAttitude) self.SetBackgroundColour('white') self.SetFont( wx.Font(pointSize=14, family=wx.ROMAN, style=wx.NORMAL, weight=wx.FONTWEIGHT_NORMAL, underline=False)) # Gridbag Sizer to store Flight Info in the Flight Info Panel box = wx.GridBagSizer(5, 5) # Dividing lines to make the Flight Info Panel prettier line = wx.StaticLine(self) line1 = wx.StaticLine(self) line2 = wx.StaticLine(self) line3 = wx.StaticLine(self) line4 = wx.StaticLine(self) line5 = wx.StaticLine(self) line6 = wx.StaticLine(self) line7 = wx.StaticLine(self) # Example ros values for startup velocity_ros = 23.1234 velocityX_ros = 23.1234 velocityY_ros = 23.1234 velocityZ_ros = 23.1234 altitude_ros = 23.1234 yaw_ros = 23.1234 pitch_ros = 23.1234 roll_ros = 23.1234 # Velocity self.velocityLabel = wx.StaticText(self, label="Velocity: ") self.velocity = str("%07.3f" % velocity_ros) + " m/s" # Required for when the text changes self.liveVelocity = wx.StaticText(self, label=self.velocity) box.Add(self.velocityLabel, pos=(0, 0), span=(1, 1), flag=wx.TOP | wx.LEFT, border=5) box.Add(self.liveVelocity, pos=(0, 1), flag=wx.TOP, border=5) box.Add(line, pos=(1, 0), span=(1, 2), flag=wx.EXPAND) # VelocityX self.velocityXLabel = wx.StaticText(self, label="Velocity X: ") self.velocityX = str("%07.3f" % velocityX_ros) + " m/s" # Required for when the text changes self.liveVelocityX = wx.StaticText(self, label=self.velocityX) box.Add(self.velocityXLabel, pos=(2, 0), span=(1, 1), flag=wx.TOP | wx.LEFT, border=5) box.Add(self.liveVelocityX, pos=(2, 1), flag=wx.TOP, border=5) box.Add(line1, pos=(3, 0), span=(1, 2), flag=wx.EXPAND) # VelocityY self.velocityYLabel = wx.StaticText(self, label="Velocity Y: ") self.velocityY = str("%07.3f" % velocityY_ros) + " m/s" # Required for when the text changes self.liveVelocityY = wx.StaticText(self, label=self.velocityY) box.Add(self.velocityYLabel, pos=(4, 0), span=(1, 1), flag=wx.TOP | wx.LEFT, border=5) box.Add(self.liveVelocityY, pos=(4, 1), flag=wx.TOP, border=5) box.Add(line2, pos=(5, 0), span=(1, 2), flag=wx.EXPAND) # VelocityZ self.velocityZLabel = wx.StaticText(self, label="Velocity Z: ") self.velocityZ = str("%07.3f" % velocityZ_ros) + " m/s" # Required for when the text changes self.liveVelocityZ = wx.StaticText(self, label=self.velocityZ) box.Add(self.velocityZLabel, pos=(6, 0), span=(1, 1), flag=wx.TOP | wx.LEFT, border=5) box.Add(self.liveVelocityZ, pos=(6, 1), flag=wx.TOP, border=5) box.Add(line3, pos=(7, 0), span=(1, 2), flag=wx.EXPAND) # Altitude self.altitudeLabel = wx.StaticText(self, label="Altitude: ") self.altitude = str("%07.3f" % altitude_ros) + " m" self.liveAltitude = wx.StaticText(self, label=self.altitude) box.Add(self.altitudeLabel, pos=(8, 0), span=(1, 1), flag=wx.LEFT, border=5) box.Add(self.liveAltitude, pos=(8, 1), flag=wx.ALL) box.Add(line4, pos=(9, 0), span=(1, 2), flag=wx.EXPAND) # Yaw self.yawLabel = wx.StaticText(self, label="Yaw: ") self.yaw = str("%07.3f" % yaw_ros) + " " + (u'\N{DEGREE SIGN}') self.liveYaw = wx.StaticText(self, label=self.yaw) box.Add(self.yawLabel, pos=(10, 0), span=(1, 1), flag=wx.LEFT, border=5) box.Add(self.liveYaw, pos=(10, 1), flag=wx.ALL) box.Add(line5, pos=(11, 0), span=(1, 2), flag=wx.EXPAND) # Pitch self.pitchLabel = wx.StaticText(self, label="Pitch: ") self.pitch = str("%07.3f" % pitch_ros) + " " + (u'\N{DEGREE SIGN}') self.livePitch = wx.StaticText(self, label=self.pitch) box.Add(self.pitchLabel, pos=(12, 0), span=(1, 1), flag=wx.LEFT, border=5) box.Add(self.livePitch, pos=(12, 1), flag=wx.ALL) box.Add(line6, pos=(13, 0), span=(1, 2), flag=wx.EXPAND) # Roll self.rollLabel = wx.StaticText(self, label="Roll: ") self.roll = str("%07.3f" % roll_ros) + " " + (u'\N{DEGREE SIGN}') self.liveRoll = wx.StaticText(self, label=self.roll) box.Add(self.rollLabel, pos=(14, 0), span=(1, 1), flag=wx.LEFT, border=5) box.Add(self.liveRoll, pos=(14, 1), flag=wx.ALL) box.Add(line7, pos=(15, 0), span=(1, 2), flag=wx.EXPAND) # Ensures proper sizing box.AddGrowableCol(box.GetEffectiveColsCount() - 1) box.AddGrowableRow(box.GetEffectiveRowsCount() - 1) self.SetSizerAndFit(box)
def __init__(self, parent, id, title): # Set config file self.cfg = wx.Config(APP_CONFIG) # Initialize frame/panel wx.Frame.__init__(self, parent, id, title, size=(self.cfg.ReadInt('appWidth', APP_DEFAULT_WIDTH), self.cfg.ReadInt('appHeight', APP_DEFAULT_HEIGHT))) self.SetIcon(wx.Icon(APP_ICON, wx.BITMAP_TYPE_ANY)) self.panel = wx.Panel(self) # Define file menu fileMenu = wx.Menu() fileExitMenuItem = fileMenu.Append(wx.ID_ANY, 'E&xit', 'Terminate the program') # Define options menu optionsMenu = wx.Menu() self.saveSettingsMenuItem = optionsMenu.Append( wx.ID_ANY, 'S&ave Settings on Exit', 'Save Settings on Exit', wx.ITEM_CHECK) self.saveSettingsMenuItem.Check() # Define help menu helpMenu = wx.Menu() helpAboutMenuItem = helpMenu.Append(wx.ID_ANY, '&About', 'Information about this program') # Assign menus to menu bar menuBar = wx.MenuBar() menuBar.Append(fileMenu, '&File') menuBar.Append(optionsMenu, '&Options') menuBar.Append(helpMenu, '&Help') self.SetMenuBar(menuBar) # Initialize thread variables self.jobID = 0 self.abortEvent = delayedresult.AbortEvent() # Define controls self.mailFromTextCtrl = wx.TextCtrl( self.panel, value=self.cfg.Read('mailFrom', self.getMyEmailAddress()), validator=validators.EmailAddressValidator()) self.mailToTextCtrl = wx.TextCtrl( self.panel, value=self.cfg.Read('mailTo'), validator=validators.EmailAddressValidator()) self.mailToTextCtrl.SetFocus() self.mailMsgTextCtrl = wx.TextCtrl( self.panel, style=wx.TE_MULTILINE, value= "X-Mailer: %s %s\nFrom: %s\nTo: %s\nSubject: Test message\n\nThis is a test." % (__app_name__, __version__, self.cfg.Read('mailFrom', self.getMyEmailAddress()), self.cfg.Read('mailTo'))) self.useNsCheckBox = wx.CheckBox(self.panel, label='Specify DNS server') self.useNsCheckBox.SetValue(self.cfg.ReadBool('useNs')) self.useNsHostTextCtrl = wx.TextCtrl( self.panel, value=self.cfg.Read('useNsHost'), validator=validators.HostAddressValidator()) self.useNsPortSpinCtrl = wx.SpinCtrl(self.panel, value=self.cfg.Read( 'useNsPort', str(DNS_DEFAULT_PORT)), min=1, max=65535, size=(50, -1)) self.nsQueryTimeoutSpinCtrl = wx.SpinCtrl( self.panel, value=self.cfg.Read('nsQueryTimeout', str(DNS_DEFAULT_QUERY_TIMEOUT)), min=1, max=65535, size=(50, -1)) self.useNsTcpCheckBox = wx.CheckBox(self.panel, label='Use TCP') self.useNsTcpCheckBox.SetValue(self.cfg.ReadBool('useNsTcp')) self.useSmtpCheckBox = wx.CheckBox(self.panel, label='Specify SMTP server') self.useSmtpCheckBox.SetValue(self.cfg.ReadBool('useSmtp')) self.useSmtpHostTextCtrl = wx.TextCtrl( self.panel, value=self.cfg.Read('useSmtpHost'), validator=validators.HostAddressValidator()) self.useSmtpPortSpinCtrl = wx.SpinCtrl(self.panel, value=self.cfg.Read( 'useSmtpPort', str(SMTP_DEFAULT_PORT)), min=1, max=65535, size=(50, -1)) self.smtpConnectTimeoutSpinCtrl = wx.SpinCtrl( self.panel, value=self.cfg.Read('smtpConnectTimeout', str(SMTP_DEFAULT_CONNECT_TIMEOUT)), min=1, max=65535, size=(50, -1)) self.useSmtpHeloTextCtrl = wx.TextCtrl( self.panel, value=self.cfg.Read('useSmtpHelo', socket.getfqdn()), validator=validators.HostAddressValidator()) self.useAuthCheckBox = wx.CheckBox(self.panel, label='Use Authentication') self.useAuthCheckBox.SetValue(self.cfg.ReadBool('useAuth')) self.useAuthUserTextCtrl = wx.TextCtrl( self.panel, value=self.cfg.Read('useAuthUser'), validator=validators.GenericTextValidator( flag=validators.VALIDATE_NOT_NULL)) self.useAuthPassTextCtrl = wx.TextCtrl( self.panel, value=self.cfg.Read('useAuthPass'), style=wx.TE_PASSWORD) self.useTlsCheckBox = wx.CheckBox(self.panel, label='Use TLS encryption') self.useTlsCheckBox.SetValue(self.cfg.ReadBool('useTls')) self.okButton = wx.Button(self.panel, wx.ID_OK) self.cancelButton = wx.Button(self.panel, wx.ID_CANCEL) self.resultsTextCtrl = wx.TextCtrl(self.panel, style=wx.TE_MULTILINE | wx.TE_RICH2 | wx.TE_READONLY) # Put all controls into correct state if not self.useNsCheckBox.IsChecked(): self.toggleNsOptions(False) if not self.useSmtpCheckBox.IsChecked(): self.toggleSmtpOptions(False) if not self.useAuthCheckBox.IsChecked(): self.toggleAuthOptions(False) self.toggleWorkingMode(False) # Outer sizer (entire window) mainSizer = wx.GridBagSizer(vgap=5, hgap=5) # Message fields messageSizer = wx.StaticBoxSizer(wx.StaticBox(self.panel, label='Message'), orient=wx.VERTICAL) messageSizer.Add(wx.StaticText(self.panel, label='From:')) messageSizer.Add(self.mailFromTextCtrl, flag=wx.ALL | wx.EXPAND) messageSizer.Add(wx.StaticText(self.panel, label='To:')) messageSizer.Add(self.mailToTextCtrl, flag=wx.ALL | wx.EXPAND) messageSizer.Add(wx.StaticText(self.panel, label='Message:')) messageSizer.Add(self.mailMsgTextCtrl, proportion=1, flag=wx.ALL | wx.EXPAND) mainSizer.Add(messageSizer, pos=(0, 0), span=(4, 1), flag=wx.ALL | wx.EXPAND) # DNS Options nsSizer = wx.StaticBoxSizer(wx.StaticBox(self.panel, label='DNS'), orient=wx.VERTICAL) innerSizer = wx.GridBagSizer() innerSizer.SetEmptyCellSize( (0, 0)) # FIXME http://trac.wxwidgets.org/ticket/3105 innerSizer.Add(self.useNsCheckBox, pos=(3, 0), span=(1, 2)) innerSizer.Add(wx.StaticText(self.panel, label='Host:'), pos=(4, 0)) innerSizer.Add(self.useNsHostTextCtrl, pos=(5, 0), flag=wx.ALL | wx.EXPAND) innerSizer.Add(wx.StaticText(self.panel, label='Port:'), pos=(4, 1)) innerSizer.Add(self.useNsPortSpinCtrl, pos=(5, 1)) innerSizer.Add(wx.StaticText(self.panel, label='Timeout:'), pos=(4, 2)) innerSizer.Add(self.nsQueryTimeoutSpinCtrl, pos=(5, 2), flag=wx.ALL | wx.EXPAND) innerSizer.Add(self.useNsTcpCheckBox, pos=(6, 0), span=(1, 2)) nsSizer.Add(innerSizer, flag=wx.ALL | wx.EXPAND) mainSizer.Add(nsSizer, pos=(0, 1), flag=wx.ALL | wx.EXPAND) # SMTP Server Options smtpSizer = wx.StaticBoxSizer(wx.StaticBox(self.panel, label='SMTP'), orient=wx.VERTICAL) innerSizer = wx.GridBagSizer() innerSizer.SetEmptyCellSize( (0, 0)) # FIXME http://trac.wxwidgets.org/ticket/3105 innerSizer.Add(self.useSmtpCheckBox, pos=(3, 0), span=(1, 2)) innerSizer.Add(wx.StaticText(self.panel, label='Host:'), pos=(4, 0)) innerSizer.Add(self.useSmtpHostTextCtrl, pos=(5, 0), flag=wx.ALL | wx.EXPAND) innerSizer.Add(wx.StaticText(self.panel, label='Port:'), pos=(4, 1)) innerSizer.Add(self.useSmtpPortSpinCtrl, pos=(5, 1)) innerSizer.Add(wx.StaticText(self.panel, label='Timeout:'), pos=(4, 2)) innerSizer.Add(self.smtpConnectTimeoutSpinCtrl, pos=(5, 2), flag=wx.ALL | wx.EXPAND) innerSizer.Add(wx.StaticText(self.panel, label='HELO/EHLO:'), pos=(6, 0)) innerSizer.Add(self.useSmtpHeloTextCtrl, pos=(7, 0), span=(1, 3), flag=wx.ALL | wx.EXPAND) smtpSizer.Add(innerSizer, flag=wx.ALL | wx.EXPAND) mainSizer.Add(smtpSizer, pos=(1, 1), flag=wx.ALL | wx.EXPAND) # Security Options secSizer = wx.StaticBoxSizer(wx.StaticBox(self.panel, label='Security'), orient=wx.VERTICAL) secSizer.Add(self.useAuthCheckBox) secSizer.Add(wx.StaticText(self.panel, label='Username:'******'Password:'******'Results'), orient=wx.VERTICAL) resultsSizer.Add(self.resultsTextCtrl, proportion=1, flag=wx.ALL | wx.EXPAND) mainSizer.Add(resultsSizer, pos=(4, 0), span=(1, 2), flag=wx.ALL | wx.EXPAND) # End outer sizer (entire window) mainSizer.AddGrowableCol(0) mainSizer.AddGrowableRow(4) self.panel.SetSizerAndFit(mainSizer) self.panel.SetClientSize(mainSizer.GetSize()) self.Show() # Map events self.Bind(wx.EVT_MENU, self.onFileExit, fileExitMenuItem) self.Bind(wx.EVT_MENU, self.onHelpAbout, helpAboutMenuItem) self.Bind(wx.EVT_CLOSE, self.onCloseWindow) self.mailFromTextCtrl.Bind(wx.EVT_TEXT, self.onUpdateMailFromTextCtrl) self.mailToTextCtrl.Bind(wx.EVT_TEXT, self.onUpdateMailToTextCtrl) self.useNsCheckBox.Bind(wx.EVT_CHECKBOX, self.onUseNsCheckBox) self.useSmtpCheckBox.Bind(wx.EVT_CHECKBOX, self.onUseSmtpCheckBox) self.useAuthCheckBox.Bind(wx.EVT_CHECKBOX, self.onAuthCheckBox) self.cancelButton.Bind(wx.EVT_BUTTON, self.onCancel) self.okButton.Bind(wx.EVT_BUTTON, self.onOk)
def __init__(self, parent): super(FlightStatePanel, self).__init__(parent)#, style=wx.SIMPLE_BORDER) print "init FlightStatePanel" # UNCOMMENT THIS AND CORRECT THE MAVROS SUBSCRIBER INFO TO GET FLIGHT STATE DATA rospy.init_node("rcp", anonymous=True) self.flightStateSubscriber = rospy.Subscriber("/redbird/flight_director/flight_state", FlightState, self.updateFlightState) self.batterySubscriber = rospy.Subscriber("/mavros/battery", BatteryState, self.updateBattery) self.SetBackgroundColour('white') self.SetFont( wx.Font(pointSize=14, family=wx.ROMAN, style=wx.NORMAL, weight=wx.FONTWEIGHT_NORMAL, underline=False)) # Gridbag Sizer to store Flight Info in the Flight Info Panel box = wx.GridBagSizer(5, 5) # Dividing lines to make the Flight Info Panel prettier line = wx.StaticLine(self) line2 = wx.StaticLine(self) line3 = wx.StaticLine(self) line4 = wx.StaticLine(self) line5 = wx.StaticLine(self) line6 = wx.StaticLine(self) # GET THE VARIABLES FROM ROS HERE currentFlight_ros = "testflight" timeElapsed_ros = 23.1234 previousTime_ros = 23.1234 batteryState_ros = 23.1234 batteryVoltage_ros = 23.1234 batteryCurrent_ros = 23.1234 # Current Flight self.currentFlightLabel = wx.StaticText(self, label="Current Flight: ") self.currentFlight = currentFlight_ros + "\t\t\t" # Required for when the text changes self.liveCurrentFlight = wx.StaticText(self, label=self.currentFlight) box.Add(self.currentFlightLabel, pos=(0, 0), span=(1, 1), flag=wx.TOP | wx.LEFT, border=5) box.Add(self.liveCurrentFlight, pos=(0, 1), flag=wx.TOP, border=5) box.Add(line, pos=(1, 0), span=(1, 2), flag=wx.EXPAND) # Time Elapsed self.timeElapsedLabel = wx.StaticText(self, label="Time Elapsed: ") self.timeElapsed = str("%07.3f" % timeElapsed_ros) + " s" self.liveTimeElapsed = wx.StaticText(self, label=self.timeElapsed) box.Add(self.timeElapsedLabel, pos=(2, 0), span=(1, 1), flag=wx.LEFT, border=5) box.Add(self.liveTimeElapsed, pos=(2, 1), flag=wx.ALL) box.Add(line2, pos=(3, 0), span=(1, 2), flag=wx.EXPAND) # Previous Time self.previousTimeLabel = wx.StaticText(self, label="Previous Time: ") self.previousTime = str("%07.3f" % previousTime_ros) + " s" self.livePreviousTime = wx.StaticText(self, label=self.previousTime) box.Add(self.previousTimeLabel, pos=(4, 0), span=(1, 1), flag=wx.LEFT, border=5) box.Add(self.livePreviousTime, pos=(4, 1), flag=wx.ALL) box.Add(line3, pos=(5, 0), span=(1, 2), flag=wx.EXPAND) # Battery Percent self.batteryStateLabel = wx.StaticText(self, label="Battery Percent: ") self.batteryState = str("%07.3f" % batteryState_ros) + " %" self.liveBatteryState = wx.StaticText(self, label=self.batteryState) box.Add(self.batteryStateLabel, pos=(6, 0), span=(1, 1), flag=wx.LEFT, border=5) box.Add(self.liveBatteryState, pos=(6, 1), flag=wx.ALL) box.Add(line4, pos=(7, 0), span=(1, 2), flag=wx.EXPAND) # Battery Voltage self.batteryVoltageLabel = wx.StaticText(self, label="Battery Voltage: ") self.batteryVoltage = str("%07.3f" % batteryVoltage_ros) + " %" self.liveBatteryVoltage = wx.StaticText(self, label=self.batteryVoltage) box.Add(self.batteryVoltageLabel, pos=(8, 0), span=(1, 1), flag=wx.LEFT, border=5) box.Add(self.liveBatteryVoltage, pos=(8, 1), flag=wx.ALL) box.Add(line5, pos=(9, 0), span=(1, 2), flag=wx.EXPAND) # Battery Current self.batteryCurrentLabel = wx.StaticText(self, label="Battery Current: ") self.batteryCurrent = str("%07.3f" % batteryCurrent_ros) + " %" self.liveBatteryCurrent = wx.StaticText(self, label=self.batteryCurrent) box.Add(self.batteryCurrentLabel, pos=(10, 0), span=(1, 1), flag=wx.LEFT, border=5) box.Add(self.liveBatteryCurrent, pos=(10, 1), flag=wx.ALL) box.Add(line6, pos=(11, 0), span=(1, 2), flag=wx.EXPAND) # Ensures proper sizing box.AddGrowableCol(box.GetEffectiveColsCount() - 1) box.AddGrowableRow(box.GetEffectiveRowsCount() - 1) self.SetSizerAndFit(box)
def ShowArg(self, record): self.show_panel = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.AddPage(self.show_panel, u"显示参数信息", True, wx.NullBitmap) show_panel = self.show_panel # show_panel 的布局,只有 scrollPanel 一个元素 show_panel.bSizer = wx.BoxSizer(wx.VERTICAL) # 为实现滚动条加入 scrollPanel show_panel.scrolledWindow = wx.ScrolledWindow(show_panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL | wx.VSCROLL) show_panel.scrolledWindow.SetScrollRate(5, 5) scrollPanel = show_panel.scrolledWindow # scrollPanel 的布局,元素为显示的控件 show_panel.gbSizer = wx.GridBagSizer(5, 5) show_panel.gbSizer.SetFlexibleDirection(wx.BOTH) show_panel.gbSizer.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) """""" show_panel.m_grid4 = grid.Grid(show_panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0) # Grid show_panel.m_grid4.CreateGrid(5, 4) show_panel.m_grid4.EnableEditing(True) show_panel.m_grid4.EnableGridLines(True) show_panel.m_grid4.EnableDragGridSize(False) show_panel.m_grid4.SetMargins(0, 0) # Columns show_panel.m_grid4.EnableDragColMove(False) show_panel.m_grid4.EnableDragColSize(True) show_panel.m_grid4.SetColLabelSize(30) show_panel.m_grid4.SetColLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE) show_panel.m_grid4.SetColLabelValue(0, "模型名称") show_panel.m_grid4.SetColLabelValue(1, "参数名称") show_panel.m_grid4.SetColLabelValue(2, "分布类型") show_panel.m_grid4.SetColLabelValue(3, "分布参数") # Rows show_panel.m_grid4.EnableDragRowSize(True) show_panel.m_grid4.SetRowLabelSize(80) show_panel.m_grid4.SetRowLabelAlignment(wx.ALIGN_CENTRE, wx.ALIGN_CENTRE) # Label Appearance # Cell Defaults show_panel.m_grid4.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP) """"设置内容""" i = 0 for row in record: show_panel.m_grid4.SetCellValue(i, 0, str(row[0])) show_panel.m_grid4.SetCellValue(i, 1, str(row[1])) show_panel.m_grid4.SetCellValue(i, 2, str(row[2])) show_panel.m_grid4.SetCellValue(i, 3, str(row[3])) i = i + 1 """""" show_panel.bSizer.Add(show_panel.m_grid4, 1, wx.ALL | wx.EXPAND, 5) scrollPanel.SetSizer(show_panel.gbSizer) scrollPanel.Layout() show_panel.bSizer.Add(scrollPanel, 1, wx.EXPAND | wx.ALL, 5) show_panel.SetSizer(show_panel.bSizer) show_panel.Layout()
def __init__(self, parent): super(RedbirdPanel, self).__init__(parent, size=(-1,-1)) print "init RedbirdPanel" # Use a GridBagSizer for a dynamic layout of widgets # Add widgets here gbs = wx.GridBagSizer(5, 5) """ # BEGIN MIDDLE INFO ROW # Localization Info """ self.localizationGrid = wx.grid.Grid(self) """ self.localizationGrid.CreateGrid(14, 3) self.localizationGrid.SetColLabelValue(0, "Found") self.localizationGrid.SetColLabelValue(1, "Color") self.localizationGrid.SetColLabelValue(2, "Position") # Simulation Info """ self.simulationGrid = wx.grid.Grid(self) """ self.simulationGrid.CreateGrid(14, 2) self.simulationGrid.SetColLabelValue(0, "Color") self.simulationGrid.SetColLabelValue(1, "Confidence") # self.SetFound(2, "True") self.localizationGrid.AutoSize() self.simulationGrid.AutoSize() # Draw Robot Positions Grid Panel """ self.drawGridPanel = DrawGridPanel(self) """ self.drawGridPanel.Bind(wx.EVT_PAINT, self.redrawGrid) topInfoRow = wx.BoxSizer(wx.HORIZONTAL) topInfoRow.Add(self.localizationGrid, flag = wx.ALL,border= 1) topInfoRow.Add(self.simulationGrid, flag = wx.ALL,border= 1) topInfoRow.Add(self.drawGridPanel, wx.ALL, 1) gbs.Add(topInfoRow, pos=(0, 0), span=(1, 5), flag=wx.ALIGN_CENTER_HORIZONTAL) """ # END TOP INFO ROW # BEGIN MIDDLE INFO ROW middleInfoRow = wx.BoxSizer(wx.HORIZONTAL) self.vehicle_state_panel = VehicleStatePanel(self) self.flight_state_panel = FlightStatePanel(self) self.buttons_panel = ButtonsPanel(self) middleInfoRow.Add(self.vehicle_state_panel, flag=wx.ALL, border=1) middleInfoRow.Add(self.flight_state_panel, flag=wx.ALL, border=1) middleInfoRow.Add(self.buttons_panel, flag=wx.ALL, border=1) gbs.Add(middleInfoRow, pos= (1,0), span=(1,5), flag=wx.ALIGN_CENTER_HORIZONTAL) # END MIDDLE INFO ROW # Ros Logger takes up all of bottom (third) row self.ros_logger_panel = RosLoggerPanel(self) gbs.Add(self.ros_logger_panel, pos=(2, 0), span=(1, 5), flag=wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND) # This timer refreshes the robot position drawing self.drawGridTimer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.refreshWindow, self.drawGridTimer) self.drawGridTimer.Start(1000) # These lines make the GridBagSizer resize windows properly gbs.AddGrowableCol(gbs.GetEffectiveColsCount() - 1) # This took forever to figure out :/ gbs.AddGrowableRow(gbs.GetEffectiveRowsCount() - 1) self.SetSizerAndFit(gbs) self.Layout() ##################################################################################################################### # For the background # self.SetBackgroundStyle(wx.BG_STYLE_ERASE) # self.bmp = wx.Bitmap("redbirdlogo.png") # self.Bind(wx.EVT_ERASE_BACKGROUND, self.onEraseBackground) ##################################################################################################################### # CHANGE THIS TIMER TO ADD THE CORRECT FOUND FUNCTIONALITY======================================================== # This timer sets changes the found column self.found_log_timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.SetFound, self.found_log_timer) self.found_log_timer.Start(1000) # CHANGE THIS TIMER TO ADD THE CORRECT COLOR FUNCTIONALITY======================================================== # This timer changes the color column self.color_log_timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.SetColor, self.color_log_timer) self.color_log_timer.Start(1000) # CHANGE THIS TIMER TO ADD THE CORRECT POSITION FUNCTIONALITY======================================================== # This timer changes the position column self.position_log_timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.SetPosition, self.position_log_timer) self.position_log_timer.Start(1000) # CHANGE THIS TIMER TO ADD THE CORRECT CONFIDENCE FUNCTIONALITY======================================================== # This timer changes the confidence column self.confidence_log_timer = wx.Timer(self) self.Bind(wx.EVT_TIMER, self.SetConfidence, self.confidence_log_timer) self.confidence_log_timer.Start(1000)
def __init__(self, parent): wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"Interprete Matematico", pos=wx.DefaultPosition, size=wx.Size(445, 300), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetSizeHintsSz(wx.Size(445, 276), wx.Size(445, 300)) self.SetBackgroundColour(wx.Colour(197, 224, 241)) self.m_menubar1 = wx.MenuBar(0) self.archivo = wx.Menu() self.salir = wx.MenuItem(self.archivo, ID_SALIR, u"Salir", wx.EmptyString, wx.ITEM_NORMAL) self.archivo.AppendItem(self.salir) self.m_menubar1.Append(self.archivo, u"Archivo") self.acercaDe = wx.Menu() self.calculadoraV01Wxpython = wx.MenuItem( self.acercaDe, ID_CALCULADORA_V01_WXPYTHON, u"Interprete Matematico v0.1 wxPython", wx.EmptyString, wx.ITEM_NORMAL) self.acercaDe.AppendItem(self.calculadoraV01Wxpython) self.m_menubar1.Append(self.acercaDe, u"Acerca de...") self.SetMenuBar(self.m_menubar1) fgSizer2 = wx.FlexGridSizer(1, 1, 2, 2) fgSizer2.SetFlexibleDirection(wx.BOTH) fgSizer2.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) gbSizer21 = wx.GridBagSizer(0, 0) gbSizer21.SetFlexibleDirection(wx.BOTH) gbSizer21.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) gbSizer21.SetEmptyCellSize(wx.Size(40, 1)) self.lblTexto = wx.StaticText(self, wx.ID_ANY, u"Interprete Matematico", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTRE) self.lblTexto.Wrap(-1) self.lblTexto.SetFont(wx.Font(11, 74, 90, 92, True, "DejaVu Sans Mono")) gbSizer21.Add(self.lblTexto, wx.GBPosition(0, 0), wx.GBSpan(1, 11), wx.ALIGN_CENTER_HORIZONTAL | wx.ALL | wx.EXPAND, 5) self.txtNumero = wx.TextCtrl(self, wx.ID_ANY, u"0", wx.DefaultPosition, wx.Size(-1, -1), wx.TE_RICH | wx.TE_RICH2 | wx.TE_RIGHT) gbSizer21.Add( self.txtNumero, wx.GBPosition(1, 0), wx.GBSpan(1, 9), wx.ALIGN_CENTER | wx.ALL | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5) self.btnExpresion = wx.Button(self, ID_BTN_EXPRESION, u"Expresion", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer21.Add(self.btnExpresion, wx.GBPosition(1, 9), wx.GBSpan(1, 1), wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5) fgSizer2.Add(gbSizer21, 1, wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND | wx.TOP, 1) gbSizer2 = wx.GridBagSizer(1, 1) gbSizer2.SetFlexibleDirection(wx.BOTH) gbSizer2.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) gbSizer2.SetEmptyCellSize(wx.Size(10, 10)) self.btnNumero1 = wx.Button(self, ID_BTN_1, u"1", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnNumero1, wx.GBPosition(0, 0), wx.GBSpan(1, 1), wx.ALL, 5) self.btnNumero2 = wx.Button(self, ID_BTN_2, u"2", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnNumero2, wx.GBPosition(0, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.btnNumero3 = wx.Button(self, ID_BTN_3, u"3", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnNumero3, wx.GBPosition(0, 2), wx.GBSpan(1, 1), wx.ALL, 5) self.btnNumero4 = wx.Button(self, ID_BTN_4, u"4", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnNumero4, wx.GBPosition(1, 0), wx.GBSpan(1, 1), wx.ALL, 5) self.btnNumero5 = wx.Button(self, ID_BTN_5, u"5", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnNumero5, wx.GBPosition(1, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.btnNumero6 = wx.Button(self, ID_BTN_6, u"6", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnNumero6, wx.GBPosition(1, 2), wx.GBSpan(1, 1), wx.ALL, 5) self.btnNumero7 = wx.Button(self, ID_BTN_7, u"7", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnNumero7, wx.GBPosition(2, 0), wx.GBSpan(1, 1), wx.ALL, 5) self.btnNumero8 = wx.Button(self, ID_BTN_8, u"8", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnNumero8, wx.GBPosition(2, 1), wx.GBSpan(1, 1), wx.ALL, 5) self.btnNumero9 = wx.Button(self, ID_BTN_9, u"9", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnNumero9, wx.GBPosition(2, 2), wx.GBSpan(1, 1), wx.ALL, 5) self.btnNuemero0 = wx.Button(self, ID_BTN_0, u"0", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnNuemero0, wx.GBPosition(3, 0), wx.GBSpan(1, 2), wx.ALL | wx.EXPAND, 5) self.btnBorrar = wx.Button(self, ID_BTN_BORRAR, u"Borrar", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnBorrar, wx.GBPosition(3, 2), wx.GBSpan(1, 1), wx.ALL, 5) self.btnSuma = wx.Button(self, ID_BTN_SUMA, u"+", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnSuma, wx.GBPosition(0, 3), wx.GBSpan(2, 1), wx.ALL | wx.EXPAND, 5) self.btnResta = wx.Button(self, ID_BTN_RESTA, u"-", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnResta, wx.GBPosition(2, 3), wx.GBSpan(2, 1), wx.ALL | wx.EXPAND, 5) self.btnMultiplicacion = wx.Button(self, ID_BTN_MULT, u"*", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnMultiplicacion, wx.GBPosition(0, 4), wx.GBSpan(2, 1), wx.ALL | wx.EXPAND, 5) self.btnDivicion = wx.Button(self, ID_BTN_DIVI, u"/", wx.DefaultPosition, wx.DefaultSize, 0) gbSizer2.Add(self.btnDivicion, wx.GBPosition(2, 4), wx.GBSpan(2, 1), wx.ALL | wx.EXPAND, 5) self.btnCalcular = wx.Button(self, ID_BTN_CALC, u"Calcular", wx.DefaultPosition, wx.DefaultSize, 0) self.btnCalcular.SetFont( wx.Font(wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, False, wx.EmptyString)) gbSizer2.Add(self.btnCalcular, wx.GBPosition(4, 0), wx.GBSpan(1, 6), wx.ALL | wx.EXPAND, 5) fgSizer2.Add(gbSizer2, 1, wx.BOTTOM | wx.EXPAND, 5) self.SetSizer(fgSizer2) self.Layout() self.Centre(wx.BOTH) # Connect Events self.Bind(wx.EVT_MENU, self.CerrarVentana, id=self.salir.GetId()) self.Bind(wx.EVT_MENU, self.VentanaAcercaDe, id=self.calculadoraV01Wxpython.GetId()) self.btnExpresion.Bind(wx.EVT_BUTTON, self.ingresarFuncion) self.btnNumero1.Bind(wx.EVT_BUTTON, self.nuevaCifra) self.btnNumero2.Bind(wx.EVT_BUTTON, self.nuevaCifra) self.btnNumero3.Bind(wx.EVT_BUTTON, self.nuevaCifra) self.btnNumero4.Bind(wx.EVT_BUTTON, self.nuevaCifra) self.btnNumero5.Bind(wx.EVT_BUTTON, self.nuevaCifra) self.btnNumero6.Bind(wx.EVT_BUTTON, self.nuevaCifra) self.btnNumero7.Bind(wx.EVT_BUTTON, self.nuevaCifra) self.btnNumero8.Bind(wx.EVT_BUTTON, self.nuevaCifra) self.btnNumero9.Bind(wx.EVT_BUTTON, self.nuevaCifra) self.btnNuemero0.Bind(wx.EVT_BUTTON, self.nuevaCifra) self.btnBorrar.Bind(wx.EVT_BUTTON, self.eventoBorrar) self.btnSuma.Bind(wx.EVT_BUTTON, self.RealizarOperacion) self.btnResta.Bind(wx.EVT_BUTTON, self.RealizarOperacion) self.btnMultiplicacion.Bind(wx.EVT_BUTTON, self.RealizarOperacion) self.btnDivicion.Bind(wx.EVT_BUTTON, self.RealizarOperacion) self.btnCalcular.Bind(wx.EVT_BUTTON, self.CalcularResultado)
def __init__(self, parent, gui_size, cfg): """Constructor""" wx.Panel.__init__(self, parent=parent) # variable initilization self.method = "automatic" self.config = cfg # design the panel sizer = wx.GridBagSizer(5, 5) text = wx.StaticText(self, label="DeepLabCut - Step 2. Extract Frames") sizer.Add(text, pos=(0, 0), flag=wx.TOP | wx.LEFT | wx.BOTTOM, border=15) # Add logo of DLC icon = wx.StaticBitmap(self, bitmap=wx.Bitmap(logo)) sizer.Add(icon, pos=(0, 4), flag=wx.TOP | wx.RIGHT | wx.ALIGN_RIGHT, border=5) line1 = wx.StaticLine(self) sizer.Add(line1, pos=(1, 0), span=(1, 5), flag=wx.EXPAND | wx.BOTTOM, border=10) self.cfg_text = wx.StaticText(self, label="Select the config file") sizer.Add(self.cfg_text, pos=(2, 0), flag=wx.TOP | wx.LEFT, border=5) if sys.platform == 'darwin': self.sel_config = wx.FilePickerCtrl( self, path="", style=wx.FLP_USE_TEXTCTRL, message="Choose the config.yaml file", wildcard="*.yaml") else: self.sel_config = wx.FilePickerCtrl( self, path="", style=wx.FLP_USE_TEXTCTRL, message="Choose the config.yaml file", wildcard="config.yaml") # self.sel_config = wx.FilePickerCtrl(self, path="",style=wx.FLP_USE_TEXTCTRL,message="Choose the config.yaml file", wildcard="config.yaml") sizer.Add(self.sel_config, pos=(2, 1), span=(1, 3), flag=wx.TOP | wx.EXPAND, border=5) self.sel_config.SetPath(self.config) self.sel_config.Bind(wx.EVT_FILEPICKER_CHANGED, self.select_config) sb = wx.StaticBox(self, label="Optional Attributes") boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL) hbox1 = wx.BoxSizer(wx.HORIZONTAL) hbox2 = wx.BoxSizer(wx.HORIZONTAL) hbox3 = wx.BoxSizer(wx.HORIZONTAL) self.method_choice = wx.RadioBox(self, label='Choose the extraction method', choices=['automatic', 'manual'], majorDimension=1, style=wx.RA_SPECIFY_COLS) self.method_choice.Bind(wx.EVT_RADIOBOX, self.select_extract_method) hbox1.Add(self.method_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) self.crop_choice = wx.RadioBox(self, label='Want to crop the frames?', choices=['False', 'True', 'GUI'], majorDimension=1, style=wx.RA_SPECIFY_COLS) hbox1.Add(self.crop_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) self.feedback_choice = wx.RadioBox(self, label='Need user feedback?', choices=['No', 'Yes'], majorDimension=1, style=wx.RA_SPECIFY_COLS) hbox1.Add(self.feedback_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) self.opencv_choice = wx.RadioBox(self, label='Want to use openCV?', choices=['No', 'Yes'], majorDimension=1, style=wx.RA_SPECIFY_COLS) self.opencv_choice.SetSelection(1) hbox1.Add(self.opencv_choice, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) algo_text = wx.StaticBox(self, label="Select the algorithm") algoboxsizer = wx.StaticBoxSizer(algo_text, wx.VERTICAL) self.algo_choice = wx.ComboBox(self, style=wx.CB_READONLY) options = ['kmeans', 'uniform'] self.algo_choice.Set(options) self.algo_choice.SetValue('kmeans') algoboxsizer.Add(self.algo_choice, 20, wx.EXPAND | wx.TOP | wx.BOTTOM, 10) cluster_step_text = wx.StaticBox(self, label="Specify the cluster step") cluster_stepboxsizer = wx.StaticBoxSizer(cluster_step_text, wx.VERTICAL) self.cluster_step = wx.SpinCtrl(self, value='1') cluster_stepboxsizer.Add(self.cluster_step, 20, wx.EXPAND | wx.TOP | wx.BOTTOM, 10) slider_width_text = wx.StaticBox(self, label="Specify the slider width") slider_widthboxsizer = wx.StaticBoxSizer(slider_width_text, wx.VERTICAL) self.slider_width = wx.SpinCtrl(self, value='25') slider_widthboxsizer.Add(self.slider_width, 20, wx.EXPAND | wx.TOP | wx.BOTTOM, 10) hbox3.Add(algoboxsizer, 10, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) hbox3.Add(cluster_stepboxsizer, 10, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) hbox3.Add(slider_widthboxsizer, 10, wx.EXPAND | wx.TOP | wx.BOTTOM, 5) boxsizer.Add(hbox1, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 10) boxsizer.Add(hbox2, 5, wx.EXPAND | wx.TOP | wx.BOTTOM, 10) boxsizer.Add(hbox3, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 10) sizer.Add(boxsizer, pos=(3, 0), span=(1, 5), flag=wx.EXPAND | wx.TOP | wx.LEFT | wx.RIGHT, border=10) self.help_button = wx.Button(self, label='Help') sizer.Add(self.help_button, pos=(4, 0), flag=wx.LEFT, border=10) self.help_button.Bind(wx.EVT_BUTTON, self.help_function) self.ok = wx.Button(self, label="Ok") sizer.Add(self.ok, pos=(4, 4)) self.ok.Bind(wx.EVT_BUTTON, self.extract_frames) self.reset = wx.Button(self, label="Reset") sizer.Add(self.reset, pos=(4, 1), span=(1, 1), flag=wx.BOTTOM | wx.RIGHT, border=10) self.reset.Bind(wx.EVT_BUTTON, self.reset_extract_frames) sizer.AddGrowableCol(2) self.SetSizer(sizer) sizer.Fit(self)