def InitUI(self): if self.mode == "DEBUG": print "In GenInfoPanel" self.locale = wx.Locale(self.lang) self.vbox = wx.BoxSizer(wx.VERTICAL) row1 = wx.BoxSizer(wx.HORIZONTAL) row2 = wx.BoxSizer(wx.HORIZONTAL) # Station Number, and Date stnNumTxt = wx.StaticText(self, label=self.stnNumTxtLbl) self.stnNumCmbo = wx.ComboBox(self, style=wx.CB_DROPDOWN | wx.TE_PROCESS_ENTER, choices=self.numbers) self.stnNumCmbo.Bind(wx.EVT_TEXT, self.OnTextTypeNum) self.stnNumCmbo.Bind(wx.EVT_MOUSEWHEEL, self.do_nothing) dateTxt = wx.StaticText(self, label=self.dateTxtLbl) self.datePicker = adv.DatePickerCtrl(self, style=wx.adv.DP_DROPDOWN) # self.datePicker = adv.CalendarCtrl(self, style=wx.adv.CAL_SHOW_HOLIDAYS|wx.adv.CAL_SEQUENTIAL_MONTH_SELECTION) # self.datePicker.SetHeaderColours('White','Blue') # self.datePicker.SetHolidayColours('White','Blue') # Add them to sizer row1.Add(stnNumTxt, 0, wx.RIGHT, 5) row1.Add(self.stnNumCmbo, 1, wx.LEFT | wx.RIGHT | wx.EXPAND, 5) row1.Add(dateTxt, 0, wx.LEFT | wx.RIGHT, 5) row1.Add(self.datePicker, 0, wx.LEFT | wx.EXPAND, 5) # Station Name and Timezone stnNameTxt = wx.StaticText(self, label=self.stnNameTxtLbl) # self.stnNameCtrl = wx.TextCtrl(self) self.stnNameCtrl = wx.ComboBox(self, style=wx.CB_DROPDOWN | wx.TE_PROCESS_ENTER, choices=self.names) self.stnNameCtrl.Bind(wx.EVT_TEXT, self.OnTextTypeName) tzTxt = wx.StaticText(self, label=self.tzTxtLbl) self.tzCmbo = wx.ComboBox(self, choices=self.timeZones, value="", style=wx.CB_READONLY) self.tzCmbo.Bind(wx.EVT_COMBOBOX, self.updateParentTZ) self.tzCmbo.Bind(wx.EVT_MOUSEWHEEL, self.do_nothing) # Add them to sizer row2.Add(stnNameTxt, 0, wx.RIGHT, 5) row2.Add(self.stnNameCtrl, 1, wx.LEFT | wx.RIGHT | wx.EXPAND, 5) row2.Add(tzTxt, 0, wx.LEFT | wx.RIGHT, 5) row2.Add(self.tzCmbo, 0, wx.LEFT, 5) self.vbox.Add(row1, 0, wx.ALL | wx.EXPAND, 5) self.vbox.Add(row2, 0, wx.ALL | wx.EXPAND, 5) self.SetSizer(self.vbox)
def __init__(self, *args, **kwds): label = kwds.pop('label', '') self.onChangeClient = kwds.pop('on_change', self.onChangeClientDefault) super(ASDateHour, self).__init__(*args, **kwds) self.txt = wx.StaticText(self, wx.ID_ANY, label) if label else None self.ctl_date = ADV.DatePickerCtrl(self, wx.ID_ANY, style=ADV.DP_DROPDOWN) self.ctl_time = MSK.TimeCtrl(self, wx.ID_ANY, format='24HHMM') self.__set_properties() self.__do_layout() self.Bind(ADV.EVT_DATE_CHANGED, self.onChange, self.ctl_date) self.Bind(MSK.EVT_TIMEUPDATE, self.onChange, self.ctl_time)
def init_component(self): self.font = wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False) self.panel = wx.Panel(self) self.sizer = wx.GridBagSizer(5, 5) self.panel.SetSizer(self.sizer) self.datelabel = wx.StaticText(self.panel, -1, '请选择预定场地的日期:', pos=(20, 25)) self.datelabel.SetFont(self.font) self.datepick = adv.DatePickerCtrl(self.panel, id=-1, size=(160, 40), pos=(200, 20), style=wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY) self.datepick.Bind(adv.EVT_DATE_CHANGED, self.OnActionChangeDate) self.init_time() self.init_choice_box() self.addUserBox() self.beginBook = wx.Button(self.panel, label='开始预定', pos=(60, 375), size=(100, 40)) self.beginBook.SetFont(self.font) self.beginBook.Bind(wx.EVT_BUTTON, self.OnActionBeginBook) self.stopBook = wx.Button(self.panel, label='停止预定', pos=(220, 375), size=(100, 40)) self.stopBook.SetFont(self.font) self.stopBook.Bind(wx.EVT_BUTTON, self.OnActionStopBook) self.textLabel = wx.StaticText(self.panel, -1, '输出信息:', pos=(20, 430)) self.textLabel.SetFont(self.font) self.addTimer() self.addOutPutText()
def __init__(self, parent): FLAGS = (wx.CAPTION | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.CLOSE_BOX | wx.RESIZE_BORDER) sc.SizedDialog.__init__(self, None, -1, "Student Registration", style=FLAGS) cPane = self.GetContentsPane() pane = sc.SizedScrolledPanel(cPane, wx.ID_ANY) pane.SetSizerProps(expand=True, proportion=1) pane.SetSizerType("vertical") # ----------------------------------------------------------------------- ''' btnbmp = wx.Bitmap('images/user.png') self.imagebtn = wx.BitmapButton(pane, bitmap=btnbmp, size=(150,100), pos=wx.DefaultPosition, style=wx.BU_BOTTOM) self.imagebtn.SetSizerProps(border=(['all'],10)) self.imagebtn.SetLabel('Add Photo') self.imagebtn.Bind(wx.EVT_BUTTON, self.OnAddPhoto) ''' # line = wx.StaticLine(pane, size=(500, -1)) # line.SetSizerProps(expand=True) self.fn_lbl = wx.StaticText(pane, -1, "Firstname", wx.DefaultPosition, wx.DefaultSize) self.fname = wx.TextCtrl(pane, -1, " ", size=(150, -1)) self.ln_lbl = wx.StaticText(pane, -1, "Lastame", wx.DefaultPosition, wx.DefaultSize) self.lname = wx.TextCtrl(pane, -1, " ", size=(150, -1)) self.dob_lbl = wx.StaticText(pane, -1, "Date of Birth", wx.DefaultPosition, wx.DefaultSize) self.dob = adv.DatePickerCtrl(pane, size=(100, -1), style=wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY | wx.adv.DP_ALLOWNONE) self.sex_lbl = wx.StaticText(pane, -1, "Gender", wx.DefaultPosition, wx.DefaultSize) self.gender = wx.Choice(pane, -1, choices=["male", "female"]) self.addr_lbl = wx.StaticText(pane, -1, "Address", wx.DefaultPosition, wx.DefaultSize) self.address = wx.TextCtrl(pane, -1, " ", size=(150, -1)) self.num_lbl = wx.StaticText(pane, -1, "Phone", wx.DefaultPosition, wx.DefaultSize) self.phone = wx.TextCtrl(pane, -1, "", size=(150, -1)) self.eml_lbl = wx.StaticText(pane, -1, 'Email', wx.DefaultPosition, wx.DefaultSize) self.email = wx.TextCtrl(pane, -1, " ", size=(200, -1)) self.prt_lbl = wx.StaticText(pane, -1, 'Parent Name', wx.DefaultPosition, wx.DefaultSize) self.parent_name = wx.TextCtrl(pane, -1, size=(150, -1)) self.lvl_lbl = wx.StaticText(pane, -1, 'Level', wx.DefaultPosition, wx.DefaultSize) self.level = wx.Choice(pane, -1, choices=['JHS', 'SHS', 'Professional']) self.adm_lbl = wx.StaticText(pane, -1, 'Addmission Date', wx.DefaultPosition, wx.DefaultSize) self.adm_date = adv.DatePickerCtrl(pane, size=(200, -1), style=wx.adv.DP_DROPDOWN | wx.adv.DP_SHOWCENTURY | wx.adv.DP_ALLOWNONE) self.SetButtonSizer(self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL))
def _init_frame(self): # 设置面板各个功能 pnl = wx.Panel(self) vb = wx.BoxSizer(wx.VERTICAL) hb1 = wx.BoxSizer(wx.HORIZONTAL) hb2 = wx.BoxSizer(wx.HORIZONTAL) hb3 = wx.BoxSizer(wx.HORIZONTAL) hb3_v1 = wx.BoxSizer(wx.VERTICAL) hb3_v2 = wx.BoxSizer(wx.VERTICAL) ###################################### # 第一层 配置文件 ###################################### text1 = wx.StaticText(pnl, wx.ID_ANY, u"风场") self.hb1_listc2 = wx.Choice(pnl, choices=ParaEMD().FengChang) self.hb1_listc2.SetSelection(0) text3 = wx.StaticText(pnl, wx.ID_ANY, u"风机") self.hb1_textc4 = wx.TextCtrl(pnl) text5 = wx.StaticText(pnl, wx.ID_ANY, u"叶片ID") self.hb1_listc6 = wx.Choice(pnl, choices=ParaEMD().IdBlade) self.hb1_listc6.SetSelection(0) text7 = wx.StaticText(pnl, wx.ID_ANY, u"信号类型") self.hb1_listc8 = wx.Choice(pnl, choices=ParaEMD().TypeData) self.hb1_listc8.SetSelection(0) hb1.AddMany([ (text1, 0, wx.ALIGN_CENTER | wx.ALL, 10), (self.hb1_listc2, 0, wx.ALIGN_CENTER | wx.ALL, 5), (text3, 0, wx.ALIGN_CENTER | wx.ALL, 5), (self.hb1_textc4, 0, wx.ALIGN_CENTER | wx.ALL, 5), (text5, 0, wx.ALIGN_CENTER | wx.ALL, 5), (self.hb1_listc6, 0, wx.ALIGN_CENTER | wx.ALL, 5), (text7, 0, wx.ALIGN_CENTER | wx.ALL, 5), (self.hb1_listc8, 0, wx.ALIGN_CENTER | wx.ALL, 5), ]) ###################################### # 第二层 时间 ###################################### text9 = wx.StaticText(pnl, wx.ID_ANY, u"起始:") self.hb2_time10 = adv.DatePickerCtrl(pnl, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, adv.DP_DEFAULT) text11 = wx.StaticText(pnl, wx.ID_ANY, u"结束:") self.hb2_time12 = adv.DatePickerCtrl(pnl, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, adv.DP_DEFAULT) self.hb2_button13 = wx.Button(pnl, label=u"运行") hb2.AddMany([ (text9, 0, wx.ALIGN_CENTER | wx.ALL, 10), (self.hb2_time10, 0, wx.ALIGN_CENTER | wx.ALL, 5), (text11, 0, wx.ALIGN_CENTER | wx.ALL, 5), (self.hb2_time12, 0, wx.ALIGN_CENTER | wx.ALL, 5), (self.hb2_button13, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) ###################################### # 第三层左侧 配置文件 ###################################### self.hb3_v_box1 = wx.RadioBox(pnl, label=u"IMF分量", choices=ParaEMD().LblList, majorDimension=3, style=wx.RA_SPECIFY_ROWS) hb3_text2 = wx.StaticBoxSizer(wx.StaticBox(pnl, 0, label=u"显示优先级"), wx.VERTICAL) self.hb3_v_ch3 = wx.Choice(pnl, choices=ParaEMD().LblListLcn) self.hb3_v_ch3.SetSelection(0) self.hb3_v_ch4 = wx.Choice(pnl, choices=ParaEMD().LblListLcn) self.hb3_v_ch4.SetSelection(1) self.hb3_v_ch5 = wx.Choice(pnl, choices=ParaEMD().LblListLcn) self.hb3_v_ch5.SetSelection(2) hb3_text6 = wx.StaticBoxSizer(wx.StaticBox(pnl, 0, label=u"时间选择"), wx.VERTICAL) self.hb3_v_ch7 = wx.Choice(pnl, choices=[]) #self.hb3_v_ch7 = wx.ListBox(pnl, choices=[], style=wx.LB_SINGLE) hb3_text8 = wx.StaticBoxSizer(wx.StaticBox(pnl, 0, label=u"幅值选择"), wx.HORIZONTAL) self.hb3_v_lc9 = wx.TextCtrl(pnl, size=(50, 25), value="100") hb3_text8_line = wx.StaticText(pnl, label=u"----") self.hb3_v_lc11 = wx.TextCtrl(pnl, size=(50, 25), value="400") self.hb3_v_button6 = wx.Button(pnl, label=u"显示") hb3_text2.AddMany([ (self.hb3_v_ch3, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (self.hb3_v_ch4, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (self.hb3_v_ch5, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) hb3_text6.AddMany([ (self.hb3_v_ch7, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) hb3_text8.AddMany([ (self.hb3_v_lc9, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (hb3_text8_line, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (self.hb3_v_lc11, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) hb3_v1.AddMany([ (self.hb3_v_box1, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (hb3_text2, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (hb3_text6, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (hb3_text8, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (self.hb3_v_button6, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) ###################################### # 第三层右侧 配置文件 ###################################### self.hb3_v_draw1 = Plot_Pnl(pnl) self.hb3_v_draw2 = Plot_Pnl(pnl) hb3_v2.AddMany([ (self.hb3_v_draw1, 2, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (self.hb3_v_draw2, 1, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) ###################################### # 所有面板汇合 ###################################### h1_line = wx.StaticLine(pnl, wx.ID_ANY) h2_line = wx.StaticLine(pnl, wx.ID_ANY, style=wx.LI_VERTICAL) hb3.AddMany([ (hb3_v1, 1, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (h2_line, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (hb3_v2, 3, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) vb.AddMany([ (hb1, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (hb2, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (h1_line, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (hb3, 1, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) pnl.SetSizer(vb) self.CreateStatusBar() # 传面板参数 self.left = [pnl, hb3_text6] self.right = [pnl, hb3_v2]
def InitUI(self): if self.mode == "DEBUG": print "In EnvironmentConditionsPanel" self.locale = wx.Locale(self.lang) self.layoutSizer = wx.BoxSizer(wx.VERTICAL) #Levels Txt and Ctrl levelsSizer = wx.BoxSizer(wx.HORIZONTAL) levelsTxt = wx.StaticText(self, label=self.levelsTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) self.levelsCtrl = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER, size=(100, -1)) levelsSizer.Add(levelsTxt, 0, wx.EXPAND | wx.RIGHT | wx.TOP, 5) levelsSizer.Add(self.levelsCtrl, 1, wx.EXPAND | wx.LEFT, 5) #Cloud Cover Text and Combo cloudCoverSizer = wx.BoxSizer(wx.HORIZONTAL) cloudCoverTxt = wx.StaticText(self, label=self.cloudCoverTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) self.cloudCoverCmbo = wx.ComboBox(self, choices=self.cloudCoverList, style=wx.CB_READONLY, size=(100, -1)) self.cloudCoverCmbo.Bind(wx.EVT_MOUSEWHEEL, self.do_nothing) cloudCoverSizer.Add(cloudCoverTxt, 0, wx.EXPAND | wx.RIGHT | wx.TOP, 5) cloudCoverSizer.Add(self.cloudCoverCmbo, 1, wx.EXPAND | wx.LEFT, 5) #Precipitation Text and Combo precipSizer = wx.BoxSizer(wx.HORIZONTAL) precipTxt = wx.StaticText(self, label=self.precipTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) self.precipCmbo = wx.ComboBox(self, choices=self.precipList, style=wx.CB_READONLY, size=(100, -1)) self.precipCmbo.Bind(wx.EVT_MOUSEWHEEL, self.do_nothing) precipSizer.Add(precipTxt, 0, wx.EXPAND | wx.RIGHT | wx.TOP, 5) precipSizer.Add(self.precipCmbo, 1, wx.EXPAND | wx.LEFT, 5) #Wind Magnitude Text, Combo windMagSizer = wx.BoxSizer(wx.HORIZONTAL) windMagTxt = wx.StaticText(self, label=self.windMagTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) self.windMagCmbo = wx.ComboBox(self, choices=self.windMagList, style=wx.CB_READONLY, size=(100, -1)) self.windMagCmbo.Bind(wx.EVT_MOUSEWHEEL, self.do_nothing) windMagSizer.Add(windMagTxt, 0, wx.EXPAND | wx.RIGHT | wx.TOP, 5) windMagSizer.Add(self.windMagCmbo, 1, wx.EXPAND | wx.LEFT, 5) #Wind Mag Speed Text and Ctrl windMagSpeedSizer = wx.BoxSizer(wx.HORIZONTAL) windMagSpeedTxt = wx.StaticText(self, label=self.windMagSpeedTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) self.windMagCtrl = MyTextCtrl(self, size=(80, -1)) self.windMagCtrl.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.windMagCtrl.Bind(wx.EVT_KILL_FOCUS, NumberControl.Sig3) windMagSpeedSizer.Add(windMagSpeedTxt, 0, wx.EXPAND | wx.RIGHT | wx.TOP, 5) windMagSpeedSizer.Add(self.windMagCtrl, 1, wx.EXPAND | wx.LEFT, 5) #Wind Direction Text and Cmbo windDirSizer = wx.BoxSizer(wx.HORIZONTAL) windDirTxt = wx.StaticText(self, label=self.windDirTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) self.windDirCmbo = wx.ComboBox(self, choices=self.windDirList, style=wx.CB_READONLY, size=(100, -1)) self.windDirCmbo.Bind(wx.EVT_MOUSEWHEEL, self.do_nothing) windDirSizer.Add(windDirTxt, 0, wx.EXPAND | wx.RIGHT | wx.TOP, 5) windDirSizer.Add(self.windDirCmbo, 1, wx.EXPAND | wx.LEFT, 5) #Battery Voltage Text and Ctrl batterySizer = wx.BoxSizer(wx.HORIZONTAL) batteryTxt = wx.StaticText(self, label=self.batteryVoltageTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) self.batteryCtrl = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER, size=(100, -1)) self.batteryCtrl.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.batteryCtrl.Bind(wx.EVT_KILL_FOCUS, NumberControl.Round1) batterySizer.Add(batteryTxt, 0, wx.EXPAND | wx.RIGHT | wx.TOP, 5) batterySizer.Add(self.batteryCtrl, 1, wx.EXPAND | wx.LEFT, 5) #Gas Pressure Sizer gasPressureSizer = wx.BoxSizer(wx.HORIZONTAL) gasPressureV1 = wx.BoxSizer(wx.VERTICAL) gasPressureV2 = wx.BoxSizer(wx.VERTICAL) gasPressureV3 = wx.BoxSizer(wx.VERTICAL) gasPressV1H1 = wx.BoxSizer(wx.HORIZONTAL) gasPressV1H2 = wx.BoxSizer(wx.HORIZONTAL) gasPressV1H3 = wx.BoxSizer(wx.HORIZONTAL) gasPressV1H4 = wx.BoxSizer(wx.HORIZONTAL) gasPressV2H1 = wx.BoxSizer(wx.HORIZONTAL) gasPressV2H2 = wx.BoxSizer(wx.HORIZONTAL) gasPressV2H3 = wx.BoxSizer(wx.HORIZONTAL) gasPressV2H4 = wx.BoxSizer(wx.HORIZONTAL) gasPressV3H1 = wx.BoxSizer(wx.HORIZONTAL) gasPressV3H2 = wx.BoxSizer(wx.HORIZONTAL) gasPressV3H3 = wx.BoxSizer(wx.HORIZONTAL) gasPressV3H4 = wx.BoxSizer(wx.HORIZONTAL) gasPressureV1.Add(gasPressV1H1, 0, wx.EXPAND) gasPressureV1.Add(gasPressV1H2, 0, wx.EXPAND) gasPressureV1.Add(gasPressV1H3, 0, wx.EXPAND | wx.TOP, 5) gasPressureV1.Add(gasPressV1H4, 0, wx.EXPAND | wx.TOP, 5) gasPressureV2.Add(gasPressV2H1, 0, wx.EXPAND) gasPressureV2.Add(gasPressV2H2, 0, wx.EXPAND) gasPressureV2.Add(gasPressV2H3, 0, wx.EXPAND | wx.TOP, 5) gasPressureV2.Add(gasPressV2H4, 0, wx.EXPAND | wx.TOP, 5) gasPressureV3.Add(gasPressV3H1, 0, wx.EXPAND) gasPressureV3.Add(gasPressV3H2, 0, wx.EXPAND) gasPressureV3.Add(gasPressV3H3, 0, wx.EXPAND | wx.TOP, 5) gasPressureV3.Add(gasPressV3H4, 0, wx.EXPAND | wx.TOP, 5) gasPressureSizer.Add(gasPressureV1, 0, wx.EXPAND) gasPressureSizer.Add(gasPressureV2, 1, wx.EXPAND) gasPressureSizer.Add(gasPressureV3, 1, wx.EXPAND) arrivalTxt = wx.StaticText(self, label=self.arrivalLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) departureTxt = wx.StaticText(self, label=self.departLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) font = wx.Font(wx.FontInfo(8).FaceName("Helvetica").Bold()) arrivalTxt.SetFont(font) departureTxt.SetFont(font) arrivalTxt.SetForegroundColour((164, 64, 43)) departureTxt.SetForegroundColour((164, 64, 43)) gasPressV1H1.Add((-255, -255), 1, wx.EXPAND) gasPressV2H1.Add(arrivalTxt, 1, wx.EXPAND) gasPressV3H1.Add(departureTxt, 1, wx.EXPAND) ########################################### #Gas Text and Ctrl gasSysTxt = wx.StaticText( self, label=self.gasSystemTxtLbl) #, style=wx.ALIGN_CENTRE_HORIZONTAL) gasSysAtTxt = wx.StaticText(self, label=self.intakeTimeLbl) gasSysAt2Txt = wx.StaticText(self, label=self.intakeTimeLbl) font2 = wx.Font(wx.FontInfo(7)) gasSysTxt.SetFont(font2) #v1h1 self.gasSysCtrl = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER, size=(40, -1)) self.gasSysCtrl.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.gasSysCtrl.Bind(wx.EVT_KILL_FOCUS, NumberControl.Sig3) self.gasArrTime = DropdownTime(False, parent=self, size=(-1, -1)) #v2h1 self.bpmrotCtrl = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER, size=(40, -1)) self.bpmrotCtrl.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.bpmrotCtrl.Bind(wx.EVT_KILL_FOCUS, NumberControl.Sig2) self.bpmrotArrTime = DropdownTime(False, parent=self, size=(-1, -1)) #v1h3 feedTxt = wx.StaticText( self, label=self.feedTxtLbl) #, style=wx.ALIGN_CENTRE_HORIZONTAL) feedAtTxt = wx.StaticText(self, label=self.intakeTimeLbl) feedAt2Txt = wx.StaticText(self, label=self.intakeTimeLbl) self.feedCtrl = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER, size=(40, -1)) self.feedCtrl.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.feedCtrl.Bind(wx.EVT_KILL_FOCUS, NumberControl.Sig2) self.feedArrTime = DropdownTime(False, parent=self, size=(-1, -1)) #v1h2 self.gasSysDepCtrl = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER, size=(40, -1)) self.gasSysDepCtrl.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.gasSysDepCtrl.Bind(wx.EVT_KILL_FOCUS, NumberControl.Sig3) self.gasDepTime = DropdownTime(False, parent=self, size=(-1, -1)) #v2h2 self.bpmrotDepCtrl = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER, size=(40, -1)) self.bpmrotDepCtrl.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.bpmrotDepCtrl.Bind(wx.EVT_KILL_FOCUS, NumberControl.Sig2) self.bpmrotDepTime = DropdownTime(False, parent=self, size=(-1, -1)) #v3h2 self.feedDepCtrl = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER, size=(40, -1)) self.feedDepCtrl.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.feedDepCtrl.Bind(wx.EVT_KILL_FOCUS, NumberControl.Sig2) self.feedDepTime = DropdownTime(False, parent=self, size=(-1, -1)) #v0h0 self.bpmrotCmbo = wx.ComboBox(self, choices=self.bpmrotTxtLbl, style=wx.CB_READONLY, size=(50, -1)) self.bpmrotCmbo.Bind(wx.EVT_MOUSEWHEEL, self.do_nothing) gasPressV1H2.Add(gasSysTxt, 0, wx.EXPAND | wx.TOP, 20) gasPressV2H2.Add(self.gasSysCtrl, 0, wx.EXPAND | wx.LEFT, 5) gasPressV2H2.Add(gasSysAtTxt, 0, wx.LEFT, 5) gasPressV2H2.Add(self.gasArrTime, 0) gasPressV3H2.Add(self.gasSysDepCtrl, 0, wx.EXPAND | wx.LEFT, 5) gasPressV3H2.Add(gasSysAt2Txt, 0, wx.LEFT, 5) gasPressV3H2.Add(self.gasDepTime, 0) #Feed Ctrl gasPressV1H3.Add(feedTxt, 0, wx.EXPAND | wx.RIGHT | wx.TOP, 5) gasPressV2H3.Add(self.feedCtrl, 0, wx.EXPAND | wx.LEFT, 5) gasPressV2H3.Add(feedAtTxt, 0, wx.LEFT, 5) gasPressV2H3.Add(self.feedArrTime, 0) gasPressV3H3.Add(self.feedDepCtrl, 0, wx.EXPAND | wx.LEFT, 5) gasPressV3H3.Add(feedAt2Txt, 0, wx.LEFT, 5) gasPressV3H3.Add(self.feedDepTime, 0) #BPM/ROT Cmbo and Ctrl bpmrotAtTxt = wx.StaticText(self, label=self.intakeTimeLbl) bpmrotAt2Txt = wx.StaticText(self, label=self.intakeTimeLbl) gasPressV1H4.Add(self.bpmrotCmbo, 0, wx.EXPAND | wx.TOP, 10) gasPressV2H4.Add(self.bpmrotCtrl, 0, wx.EXPAND | wx.LEFT, 5) gasPressV2H4.Add(bpmrotAtTxt, 0, wx.LEFT, 5) gasPressV2H4.Add(self.bpmrotArrTime, 0) gasPressV3H4.Add(self.bpmrotDepCtrl, 0, wx.EXPAND | wx.LEFT, 5) gasPressV3H4.Add(bpmrotAt2Txt, 0, wx.LEFT, 5) gasPressV3H4.Add(self.bpmrotDepTime, 0) #Intake/Orifice checkboxes intakeOrificeSizerH = wx.BoxSizer(wx.HORIZONTAL) intakeSizer = wx.BoxSizer(wx.HORIZONTAL) self.intakeCB = wx.CheckBox(self, label=self.intakeTxtLbl) self.intakeCB.Bind(wx.EVT_CHECKBOX, self.OnIntakeCheck) intakeSizer.Add(self.intakeCB, 1, wx.EXPAND) intakeTimeSizer = wx.BoxSizer(wx.HORIZONTAL) self.intakeTimeTxt = wx.StaticText(self, label=self.intakeTimeLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(-1, 10)) self.intakeTimeTxt.Hide() self.intakeTimeCtrl = masked.TimeCtrl(self, 2, size=(-1, 10), displaySeconds=False, style=wx.TE_CENTRE, fmt24hr=True) self.intakeTimeCtrl.Bind(wx.EVT_KEY_DOWN, self.OnResetTime) self.intakeTimeCtrl.Hide() intakeTimeSizer.Add(self.intakeTimeTxt, 0, wx.EXPAND) intakeTimeSizer.Add(self.intakeTimeCtrl, 1, wx.EXPAND) orificeSizer = wx.BoxSizer(wx.HORIZONTAL) self.orificeCB = wx.CheckBox(self, label=self.orificeTxtLbl) self.orificeCB.Bind(wx.EVT_CHECKBOX, self.OnOrificeCheck) orificeSizer.Add(self.orificeCB, 1, wx.EXPAND) orificeTimeSizer = wx.BoxSizer(wx.HORIZONTAL) self.orificeTimeTxt = wx.StaticText(self, label=self.intakeTimeLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(-1, 10)) self.orificeTimeTxt.Hide() self.orificeTimeCtrl = masked.TimeCtrl(self, 2, size=(-1, 10), displaySeconds=False, style=wx.TE_CENTRE, fmt24hr=True) self.orificeTimeCtrl.Bind(wx.EVT_KEY_DOWN, self.OnResetTime) self.orificeTimeCtrl.Hide() orificeTimeSizer.Add(self.orificeTimeTxt, 0, wx.EXPAND) orificeTimeSizer.Add(self.orificeTimeCtrl, 1, wx.EXPAND) intakeOrificeSizerH.Add(intakeSizer, 1, wx.EXPAND) intakeOrificeSizerH.Add(orificeSizer, 1, wx.EXPAND) self.intakeOrificeTimeSizerH = wx.BoxSizer(wx.HORIZONTAL) self.intakeOrificeTimeSizerH.Add(intakeTimeSizer, 1, wx.EXPAND) self.intakeOrificeTimeSizerH.Add(orificeTimeSizer, 1, wx.EXPAND) #Program/Data checkboxes programDataSizerH = wx.BoxSizer(wx.HORIZONTAL) programSizer = wx.BoxSizer(wx.HORIZONTAL) self.programCB = wx.CheckBox(self, label=self.programTxtLbl, size=(85, -1)) programSizer.Add(self.programCB, 1, wx.EXPAND) dataSizer = wx.BoxSizer(wx.HORIZONTAL) self.dataCB = wx.CheckBox(self, label=self.dataTxtLbl, size=(-1, -1)) self.dataCB.Bind(wx.EVT_CHECKBOX, self.OnDownloadedData) dataSizer.Add(self.dataCB, 1, wx.EXPAND) programDataSizerH.Add(programSizer, 1, wx.EXPAND) programDataSizerH.Add(dataSizer, 1, wx.EXPAND) #Data period From/To dataPeriodSizer = wx.BoxSizer(wx.VERTICAL) dataPeriodTxt = wx.StaticText(self, label=self.dataPeriodTxtLbl) dataPeriodRangeSizer = wx.BoxSizer(wx.HORIZONTAL) dataPeriodFromTxt = wx.StaticText(self, label=self.dataPeriodFromTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) self.dataPeriodFromPicker = adv.DatePickerCtrl( self, style=wx.adv.DP_DROPDOWN, size=(30, -1)) self.dataPeriodFromPicker.Enable(False) dataPeriodToTxt = wx.StaticText(self, label=self.dataPeriodToTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) self.dataPeriodToPicker = adv.DatePickerCtrl(self, style=wx.adv.DP_DROPDOWN, size=(30, -1)) self.dataPeriodToPicker.Enable(False) dataPeriodRangeSizer.Add(dataPeriodFromTxt, 0, wx.EXPAND | wx.TOP | wx.RIGHT, 5) dataPeriodRangeSizer.Add(self.dataPeriodFromPicker, 1, wx.EXPAND) dataPeriodRangeSizer.Add(dataPeriodToTxt, 0, wx.EXPAND | wx.TOP | wx.RIGHT, 5) dataPeriodRangeSizer.Add(self.dataPeriodToPicker, 1, wx.EXPAND) dataPeriodSizer.Add(dataPeriodTxt, 0, wx.EXPAND) dataPeriodSizer.Add(dataPeriodRangeSizer, 1, wx.EXPAND) #Station Health Remark stationHealthRemarkPanel = wx.Panel(self, style=wx.NO_BORDER) stationRemarkSizer = wx.BoxSizer(wx.HORIZONTAL) stationHealthRemarkPanel.SetSizer(stationRemarkSizer) stationHealthTxt = wx.StaticText(stationHealthRemarkPanel, label=self.stnRemarkLbl, style=wx.ALIGN_CENTRE_HORIZONTAL) self.stationHealthRemarksCtrl = wx.TextCtrl( stationHealthRemarkPanel, style=wx.TE_PROCESS_ENTER | wx.TE_MULTILINE | wx.TE_BESTWRAP, size=(-1, -1)) stationRemarkSizer.Add(stationHealthTxt, 0) stationRemarkSizer.Add(self.stationHealthRemarksCtrl, 1, wx.EXPAND) #Add all to layout Sizer self.layoutSizer.Add(levelsSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add(cloudCoverSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add(precipSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add(windMagSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add(windMagSpeedSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add(windDirSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add(batterySizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add(gasPressureSizer, 1, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) # self.layoutSizer.Add(gasSysSizer, 0, wx.EXPAND|wx.LEFT|wx.TOP|wx.RIGHT, 5) # self.layoutSizer.Add(machineSizerH, 0, wx.EXPAND|wx.LEFT|wx.TOP|wx.RIGHT, 5) self.layoutSizer.Add(intakeOrificeSizerH, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add(self.intakeOrificeTimeSizerH, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add(programDataSizerH, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add((1, 10)) self.layoutSizer.Add(dataPeriodSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.layoutSizer.Add(stationHealthRemarkPanel, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 5) self.SetSizer(self.layoutSizer)
def drawTopPanel(self): # 为top面板设置一个布局管理器 vbox = wx.BoxSizer(wx.VERTICAL) # 查询栏 hbox1 = wx.BoxSizer(wx.HORIZONTAL) orderNo = wx.StaticText(self.top, label=u'入库单号:') hbox1.Add(orderNo, flag=wx.RIGHT, border=8) self.tc_orderNo = wx.TextCtrl(self.top, size=wx.Size(150, -1)) hbox1.Add(self.tc_orderNo, flag=wx.RIGHT, border=8) orderType = wx.StaticText(self.top, label=u'入库类型:') hbox1.Add(orderType, flag=wx.RIGHT, border=8) self.choice_orderType = wx.Choice(self.top) hbox1.Add(self.choice_orderType, flag=wx.RIGHT, border=8) customerName = wx.StaticText(self.top, label=u'供应商:') hbox1.Add(customerName, flag=wx.RIGHT, border=8) self.choice_customerName = wx.Choice(self.top) hbox1.Add(self.choice_customerName, flag=wx.RIGHT, border=8) productName = wx.StaticText(self.top, label=u'产品:') hbox1.Add(productName, flag=wx.RIGHT, border=8) self.choice_productName = wx.Choice(self.top) hbox1.Add(self.choice_productName, flag=wx.RIGHT, border=8) outdate = wx.StaticText(self.top, label=u'入库日期:') hbox1.Add(outdate, flag=wx.RIGHT, border=8) self.datectl_start = adv.DatePickerCtrl(self.top, style=adv.DP_DROPDOWN | adv.DP_SHOWCENTURY | adv.DP_ALLOWNONE) hbox1.Add(self.datectl_start, flag=wx.RIGHT, border=8) todate = wx.StaticText(self.top, label=u'~') hbox1.Add(todate, flag=wx.RIGHT, border=8) self.datectl_end = adv.DatePickerCtrl(self.top, style=adv.DP_DROPDOWN | adv.DP_SHOWCENTURY | adv.DP_ALLOWNONE) hbox1.Add(self.datectl_end, flag=wx.RIGHT, border=8) self.search_button = wx.Button(self.top, wx.ID_ANY, u"搜索", size=(45, 25)) self.search_button.SetToolTipString(u"根据条件搜索") self.search_button.Bind(wx.EVT_BUTTON, self.button_search_click) hbox1.Add(self.search_button, flag=wx.RIGHT, border=10) self.clear_button = wx.Button(self.top, wx.ID_ANY, u"清空", size=(45, 25)) self.clear_button.SetToolTipString(u"清空搜索条件") self.clear_button.Bind(wx.EVT_BUTTON, self.button_clear_click) hbox1.Add(self.clear_button, flag=wx.RIGHT, border=8) vbox.Add(hbox1, flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, border=10) # 操作按钮栏 hbox2 = wx.BoxSizer(wx.HORIZONTAL) self.add_button = wx.Button(self.top, wx.ID_ANY, u"添加", size=(70, 25)) self.add_button.SetToolTipString(u"添加入库单") self.add_button.Bind(wx.EVT_BUTTON, self.button_add_click) hbox2.Add(self.add_button, flag=wx.RIGHT, border=8) self.del_button = wx.Button(self.top, wx.ID_ANY, u"撤回", size=(70, 25)) self.del_button.SetToolTipString(u"撤回入库单") self.del_button.Bind(wx.EVT_BUTTON, self.button_del_click) hbox2.Add(self.del_button, flag=wx.RIGHT, border=8) vbox.Add(hbox2, flag=wx.EXPAND | wx.LEFT | wx.RIGHT | wx.TOP, border=10) # 画表格 self.m_grid1 = qtable.QGridTable(self.top) vbox.Add(self.m_grid1, 1, wx.ALL | wx.EXPAND, 5) self.top.SetSizer(vbox)
def InitUI(self): if self.mode == "DEBUG": print "AQUARIUS Data Extraction Tool Frame" self.layoutSizer = wx.BoxSizer(wx.VERTICAL) basePanel = wx.Panel(self) icon_path = self.iconName if hasattr(sys, '_MEIPASS'): icon_path = os.path.join(sys._MEIPASS, icon_path) #PNG Icon if os.path.exists(icon_path): png = wx.Image(icon_path, wx.BITMAP_TYPE_ANY).ConvertToBitmap() self.icon = wx.Icon(png) self.SetIcon(self.icon) # Path Title pathSizer = wx.BoxSizer(wx.HORIZONTAL) pathTitle = wx.StaticText(basePanel, label=self.pathTitleLbl, style=wx.ALIGN_CENTER_HORIZONTAL) pathTitle.SetFont(self.titleFont) pathSizer.Add(pathTitle, 1, wx.EXPAND | wx.LEFT, 5) # pathSizer.Add((-1, -1), 1, wx.EXPAND) # Stations stationSizer = wx.BoxSizer(wx.HORIZONTAL) stationLabel = wx.StaticText(basePanel, label=self.stationLbl, size=(self.labelWidth, -1), style=wx.ALIGN_RIGHT) self.stationCtrl = wx.TextCtrl(basePanel, style=wx.TE_PROCESS_ENTER | wx.TE_BESTWRAP) self.stationCtrl.Bind(wx.EVT_TEXT, self.OnTextTypeStation) self.stationCtrl.SetHint("02KF015, 01CC002, 07EF001, ....") stationSizer.Add(stationLabel, 0, wx.EXPAND | wx.TOP, 5) stationSizer.Add(self.stationCtrl, 1, wx.EXPAND | wx.LEFT, 6) # stationBtnSizer = wx.BoxSizer(wx.HORIZONTAL) self.statoinBtn = wx.Button(basePanel, label="Stations List From File", size=(-1, -1)) self.statoinBtn.Bind(wx.EVT_BUTTON, self.OnStationBrowse) self.stationListHelpBtn = wx.Button(basePanel, size=(15, 15), label="!") self.stationListHelpBtn.SetForegroundColour('red') self.stationListHelpBtn.Bind(wx.EVT_BUTTON, self.OnOpenStationHelp) stationSizer.Add(self.statoinBtn, 0, wx.EXPAND | wx.LEFT, 6) stationSizer.Add(self.stationListHelpBtn, 0) # stationBtnSizer.Add(self.statoinBtn, 0, wx.EXPAND, 5) # Import list importSizer = wx.BoxSizer(wx.HORIZONTAL) importTitle = wx.StaticText(basePanel, label=self.importTitleLbl, style=wx.ALIGN_LEFT) importTitle.SetFont(self.titleFont) importSizer.Add(importTitle, 1, wx.EXPAND | wx.LEFT, 4) importSizer.Add((-1, -1), 1, wx.EXPAND) # Station Information Checkbox stnCkboxSizer = wx.BoxSizer(wx.HORIZONTAL) self.stnCkbox = wx.CheckBox(basePanel, label=self.stnCkboxLbl, style=wx.ALIGN_LEFT) self.stnCkbox.SetValue(True) stnCkboxSizer.Add(self.stnCkbox, 0, wx.EXPAND) # Levels Information Checkbox lvlCkboxSizer = wx.BoxSizer(wx.HORIZONTAL) self.lvlCkbox = wx.CheckBox(basePanel, label=self.lvlCkboxLbl, style=wx.ALIGN_LEFT) self.lvlCkbox.SetValue(True) lvlCkboxSizer.Add(self.lvlCkbox, 0, wx.EXPAND) # Rating Curve Checkbox rcCkboxSizer = wx.BoxSizer(wx.HORIZONTAL) self.rcCkbox = wx.CheckBox(basePanel, label=self.rcCkboxLbl, style=wx.ALIGN_LEFT) self.rcCkbox.SetValue(True) rcCkboxSizer.Add(self.rcCkbox, 0, wx.EXPAND) #Data period From/To dataPeriodSizer = wx.BoxSizer(wx.VERTICAL) dataperiodTextSizer = wx.BoxSizer(wx.HORIZONTAL) self.dataPeriodCkbox = wx.CheckBox(basePanel, label=self.dataPeriodTxtLbl, style=wx.ALIGN_LEFT) self.dataPeriodCkbox.Bind(wx.EVT_CHECKBOX, self.OnDataPeriodCheck) self.dataPeriodCkbox.SetValue(True) dataperiodTextSizer.Add(self.dataPeriodCkbox, 0, wx.EXPAND) dataperiodTextSizer.Add((-1, -1), 1, wx.EXPAND) self.dataPeriodFromTxt = wx.StaticText(basePanel, label=self.dataPeriodFromTxtLbl, size=(30, -1), style=wx.ALIGN_RIGHT) self.dataPeriodFromPicker = adv.DatePickerCtrl( basePanel, style=wx.adv.DP_DROPDOWN, size=(-1, -1)) year = datetime.datetime.now().year - 2 self.dataPeriodFromPicker.SetValue(wx.DateTime.FromDMY(1, 0, year)) self.dataPeriodToTxt = wx.StaticText(basePanel, label=self.dataPeriodToTxtLbl, size=(20, -1), style=wx.ALIGN_RIGHT) self.dataPeriodToPicker = adv.DatePickerCtrl(basePanel, style=wx.adv.DP_DROPDOWN, size=(-1, -1)) dataperiodTextSizer.Add(self.dataPeriodFromTxt, 0, wx.EXPAND | wx.TOP | wx.RIGHT, 5) dataperiodTextSizer.Add(self.dataPeriodFromPicker, 0, wx.EXPAND) dataperiodTextSizer.Add(self.dataPeriodToTxt, 0, wx.EXPAND | wx.TOP | wx.RIGHT, 5) dataperiodTextSizer.Add(self.dataPeriodToPicker, 0, wx.EXPAND) dataPeriodSizer.Add(dataperiodTextSizer, 0, wx.EXPAND) # dataPeriodSizer.Add(dataPeriodRangeSizer, 0, wx.EXPAND) self.includeMinMaxCkbox = wx.CheckBox(basePanel, label=self.minMaxHistLbl) self.includeMinMaxCkbox.Bind(wx.EVT_CHECKBOX, self.OnMinMaxCkBox) self.includeMinMaxCkbox.SetValue(True) self.minMaxSpinCtrl = wx.SpinCtrl(basePanel, min=0, max=10, initial=3, size=(40, -1)) self.minMaxSpinCtrl.Bind(wx.EVT_KILL_FOCUS, self.OnMinMaxSpinCtrl) self.minMaxHintBtn = wx.Button(basePanel, size=(15, 10), label="!") self.minMaxHintBtn.SetForegroundColour('red') self.minMaxHintBtn.Bind(wx.EVT_BUTTON, self.OnMinMaxHintBtn) minMaxSizer = wx.BoxSizer(wx.HORIZONTAL) minMaxSizer.Add((-1, -1), 1, wx.EXPAND) minMaxSizer.Add(self.includeMinMaxCkbox, 0, wx.EXPAND | wx.TOP | wx.RIGHT, 5) minMaxSizer.Add(self.minMaxSpinCtrl, 0, wx.EXPAND | wx.TOP, 5) minMaxSizer.Add(self.minMaxHintBtn, 0, wx.EXPAND | wx.TOP | wx.RIGHT, 5) dataPeriodSizer.Add(minMaxSizer, 0, wx.EXPAND) # Location Selector locSizer = wx.BoxSizer(wx.VERTICAL) exportSizer = wx.BoxSizer(wx.HORIZONTAL) browseSizer = wx.BoxSizer(wx.HORIZONTAL) locLabel = wx.StaticText(basePanel, label=self.pathLbl, size=(80, -1), style=wx.ALIGN_RIGHT) self.locText = wx.StaticText(basePanel, size=(-1, 40), label=self.path, style=wx.SIMPLE_BORDER) exportSubtext = wx.StaticText(basePanel, size=(-1, 35), label=self.exportSubtxtLbl) self.locButton = wx.Button(basePanel, label=self.browseLbl) self.locButton.Bind(wx.EVT_BUTTON, self.OnBrowse) exportSizer.Add(locLabel, 0, wx.EXPAND | wx.TOP, 0) exportSizer.Add(self.locText, 1, wx.EXPAND | wx.LEFT, 6) browseSizer.Add(exportSubtext, 1, wx.EXPAND) browseSizer.Add(self.locButton, 0, wx.LEFT, 6) locSizer.Add(exportSizer, 0, wx.EXPAND | wx.ALL, 2) locSizer.Add(browseSizer, 0, wx.EXPAND | wx.ALL, 2) #Fold panel Bar self.foldBool = True hintSizer = wx.BoxSizer(wx.VERTICAL) self.panel_bar = fpb.FoldPanelBar(basePanel, -1, agwStyle=fpb.FPB_VERTICAL) self.panel_bar.Bind(fpb.EVT_CAPTIONBAR, self.OnHint) fold_panel = self.panel_bar.AddFoldPanel("Show some hints") # thing = wx.TextCtrl(fold_panel, -1, size=(555, -1), style=wx.TE_MULTILINE) hintText = wx.StaticText(fold_panel, -1, size=(555, -1), label=self.hint) # self.panel_bar.AddFoldPanelWindow(fold_panel, thing) self.panel_bar.AddFoldPanelWindow(fold_panel, hintText) # hintSizer.Add(self.panel_bar, 1, wx.EXPAND|wx.ALL, 5) # #Collapsible Panel # hintSizer = wx.BoxSizer(wx.VERTICAL) # self.hintCollPane = wx.CollapsiblePane(basePanel, wx.ID_ANY, style=wx.CP_NO_TLW_RESIZE, size=(-1,40), label="Show some hints") # self.hintCollPane.Bind(wx.EVT_COLLAPSIBLEPANE_CHANGED, self.OnHint) # hintSizer.Add(self.hintCollPane, 0, wx.EXPAND|wx.ALL, 5) # self.win = self.hintCollPane.GetPane() # hintText = wx.StaticText(self.win, label=self.hint) # hintDetailsSizer = wx.BoxSizer(wx.VERTICAL) # self.win.SetSizer(hintDetailsSizer) # hintDetailsSizer.Add(hintText, 0, wx.EXPAND|wx.ALL, 5) # # hintDetailsSizer.SetSizeHints(self.win) # Login loginSizer = wx.BoxSizer(wx.HORIZONTAL) loginTitle = wx.StaticText(basePanel, label=self.loginTitleLbl, size=(140, -1)) loginTitle.SetFont(self.titleFont) loginSizer.Add(loginTitle, 0, wx.EXPAND | wx.LEFT, 5) loginSizer.Add((-1, -1), 1, wx.EXPAND) # Username usernameSizer = wx.BoxSizer(wx.HORIZONTAL) usernameLabel = wx.StaticText(basePanel, label=self.usernameLbl, size=(self.labelWidth, -1), style=wx.ALIGN_RIGHT) self.usernameCtrl = wx.TextCtrl(basePanel) usernameSizer.Add(usernameLabel, 0, wx.EXPAND | wx.TOP, 5) usernameSizer.Add(self.usernameCtrl, 1, wx.EXPAND | wx.LEFT, 6) # Password passwordSizer = wx.BoxSizer(wx.HORIZONTAL) passwordLabel = wx.StaticText(basePanel, label=self.passwordLbl, size=(self.labelWidth, -1), style=wx.ALIGN_RIGHT) self.passwordCtrl = wx.TextCtrl(basePanel, style=wx.TE_PASSWORD | wx.TE_PROCESS_ENTER) self.passwordCtrl.Bind(wx.EVT_TEXT_ENTER, self.OnRun) passwordSizer.Add(passwordLabel, 0, wx.EXPAND | wx.TOP, 5) passwordSizer.Add(self.passwordCtrl, 1, wx.EXPAND | wx.LEFT, 6) # Buttons buttonsSizer = wx.BoxSizer(wx.HORIZONTAL) self.ngExportChk = wx.CheckBox(basePanel, label=self.ngExportLabel, style=wx.ALIGN_LEFT) self.ngExportChk.SetValue(True) self.runButton = wx.Button(basePanel, label=self.runButtonLbl) self.runButton.Bind(wx.EVT_BUTTON, self.OnRun) self.canButton = wx.Button(basePanel, label=self.canButtonLbl) self.canButton.Bind(wx.EVT_BUTTON, self.OnCancel) buttonsSizer.Add((-1, -1), 1, wx.EXPAND) buttonsSizer.Add(self.ngExportChk, 0, wx.EXPAND | wx.RIGHT, 4) buttonsSizer.Add(self.runButton, 0, wx.EXPAND | wx.RIGHT, 4) buttonsSizer.Add(self.canButton, 0, wx.EXPAND | wx.LEFT, 4) # Layout Sizer self.layoutSizer.Add(pathSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 5), 0, wx.EXPAND) self.layoutSizer.Add(stationSizer, 0, wx.EXPAND | wx.ALL, 4) # self.layoutSizer.Add(stationBtnSizer, 0, wx.EXPAND|wx.ALL, 4) self.layoutSizer.Add((-1, 10), 0, wx.EXPAND) self.layoutSizer.Add(importSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 1), 0, wx.EXPAND) self.layoutSizer.Add(stnCkboxSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 1), 0, wx.EXPAND) self.layoutSizer.Add(lvlCkboxSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 1), 0, wx.EXPAND) self.layoutSizer.Add(rcCkboxSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 1), 0, wx.EXPAND) self.layoutSizer.Add(dataPeriodSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add((-1, 1), 0, wx.EXPAND) self.layoutSizer.Add(locSizer, 0, wx.EXPAND | wx.ALL, 4) # self.layoutSizer.Add(dataPeriodTxt, 0, wx.EXPAND) # self.layoutSizer.Add(dataPeriodRangeSizer, 0, wx.EXPAND) self.layoutSizer.Add((-1, 15), 0, wx.EXPAND) self.layoutSizer.Add(loginSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add(usernameSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 4) self.layoutSizer.Add((-1, 5), 0, wx.EXPAND) self.layoutSizer.Add(passwordSizer, 0, wx.EXPAND | wx.LEFT | wx.TOP | wx.RIGHT, 4) self.layoutSizer.Add((-1, 5), 0, wx.EXPAND) self.layoutSizer.Add(buttonsSizer, 0, wx.EXPAND | wx.ALL, 4) self.layoutSizer.Add(self.panel_bar, 1, wx.EXPAND | wx.ALL, 4) basePanel.SetSizer(self.layoutSizer) self.Bind(wx.EVT_CLOSE, self.OnCancel)
def _init_frame(self): # 设置面板各个功能 pnl = wx.Panel(self) vb = wx.BoxSizer(wx.VERTICAL) hb1 = wx.BoxSizer(wx.HORIZONTAL) hb2 = wx.BoxSizer(wx.HORIZONTAL) hb2_v1 = wx.BoxSizer(wx.VERTICAL) hb2_h2 = wx.BoxSizer(wx.HORIZONTAL) ###################################### # 第一层 配置文件 ###################################### text1 = wx.StaticText(pnl, wx.ID_ANY, u"风场") self.hb1_listc2 = wx.Choice(pnl, choices=wind_field) self.hb1_listc2.SetSelection(0) text3 = wx.StaticText(pnl, wx.ID_ANY, u"风机") self.hb1_textc4 = wx.TextCtrl(pnl) text5 = wx.StaticText(pnl, wx.ID_ANY, u"叶片ID") self.hb1_listc6 = wx.Choice(pnl, choices=wind_blade) self.hb1_listc6.SetSelection(0) text7 = wx.StaticText(pnl, wx.ID_ANY, u"信号类型") self.hb1_listc8 = wx.Choice(pnl, choices=signal_type) self.hb1_listc8.SetSelection(0) text9 = wx.StaticText(pnl, wx.ID_ANY, u"时间") self.hb1_time10 = adv.DatePickerCtrl(pnl, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, adv.DP_DEFAULT) hb1.AddMany([ (text1, 0, wx.ALIGN_CENTER | wx.ALL, 10), (self.hb1_listc2, 0, wx.ALIGN_CENTER | wx.ALL, 5), (text3, 0, wx.ALIGN_CENTER | wx.ALL, 5), (self.hb1_textc4, 0, wx.ALIGN_CENTER | wx.ALL, 5), (text5, 0, wx.ALIGN_CENTER | wx.ALL, 5), (self.hb1_listc6, 0, wx.ALIGN_CENTER | wx.ALL, 5), (text7, 0, wx.ALIGN_CENTER | wx.ALL, 5), (self.hb1_listc8, 0, wx.ALIGN_CENTER | wx.ALL, 5), (text9, 0, wx.ALIGN_CENTER | wx.ALL, 5), (self.hb1_time10, 0, wx.ALIGN_CENTER | wx.ALL, 5), ]) ###################################### # 第二层左侧 配置文件 ###################################### fl_list = ["IMF1", "IMF2", "IMF3"] self.hb2_v_box1 = wx.RadioBox(pnl, label=u"IMF分量", choices=fl_list, majorDimension=3, style=wx.RA_SPECIFY_ROWS) data_list = ["叶片1", "叶片2", "叶片3"] self.hb2_v_box2 = wx.RadioBox(pnl, label=u"显示优先级", choices=data_list, majorDimension=3, style=wx.RA_SPECIFY_ROWS) self.hb2_v_button1 = wx.Button(pnl, label=u"运行") hb2_v1.AddMany([ (self.hb2_v_box1, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (self.hb2_v_box2, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (self.hb2_v_button1, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) # self.hb2__box1.GetStringSelection() # 获取单选的值 ###################################### # 第二层右侧 配置文件 ###################################### hb2_v_draw = plot.PlotCanvas(pnl) gc = self.test_draw(hb2_v_draw) hb2_v_draw.Draw(gc) hb2_h2.Add(hb2_v_draw, 1, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5) ###################################### # 所有面板汇合 ###################################### h1_line = wx.StaticLine(pnl, wx.ID_ANY) h2_line = wx.StaticLine(pnl, wx.ID_ANY, style=wx.LI_VERTICAL) hb2.AddMany([ (hb2_v1, 1, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (h2_line, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (hb2_h2, 3, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) vb.AddMany([ (hb1, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (h1_line, 0, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), (hb2, 1, wx.EXPAND | wx.ALIGN_CENTER | wx.ALL, 5), ]) pnl.SetSizer(vb) self.CreateStatusBar()