def setUp(self) -> None: self.app = wx.App() self.frame = wx.Frame(None) self.combobox = wx.ComboCtrl(self.frame, size=(180, -1), style=wx.CB_READONLY) self._popup_ctrl = ListBoxComboPopup(self.combobox) self.combobox.SetPopupControl(self._popup_ctrl) self._lb_popup_ctr = self._popup_ctrl.GetControl() # Call directly the ListBoxWithHeaders methods self._lb_popup_ctr.add_header("Header") self._lb_popup_ctr.add_items(["item%s" % i for i in range(10)])
def __init__(self, parent, log): self.log = log wx.Panel.__init__(self, parent, -1) comboCtrl = wx.ComboCtrl(self, wx.ID_ANY, "", (20,20)) popupCtrl = ListCtrlComboPopup() # It is important to call SetPopupControl() as soon as possible comboCtrl.SetPopupControl(popupCtrl) # Populate using wx.ListView methods popupCtrl.AddItem("First Item") popupCtrl.AddItem("Second Item") popupCtrl.AddItem("Third Item")
def test_init(self): choices = ["item0", "item1", "item2"] combobox = wx.ComboCtrl(self.frame, size=(180, -1), style=wx.CB_READONLY) popup_ctrl = ListBoxComboPopup(combobox) combobox.SetPopupControl(popup_ctrl) lb_popup_ctr = popup_ctrl.GetControl() lb_popup_ctr.AppendItems(choices) popup_ctrl.SetStringSelection("item1") self.assertEqual(popup_ctrl.GetStringValue(), "item1") self.assertEqual(popup_ctrl.GetSelection(), 1) self.assertEqual(lb_popup_ctr.GetCount(), 3)
def __init__(self, parent, log): self.log = log wx.Panel.__init__(self, parent, -1) fgs = wx.FlexGridSizer(cols=3, hgap=10, vgap=10) cc = wx.ComboCtrl(self, size = (250, -1)) tcp = CheckboxComboPopup() cc.SetPopupControl(tcp) fgs.Add(cc) fgs.Add((10,10)) fgs.Add(wx.StaticText(self, -1, "Checkbox Combo")) box = wx.BoxSizer() box.Add(fgs, 1, wx.EXPAND|wx.ALL, 20) self.SetSizer(box)
def __init__(self, parent): wx.Frame.__init__(self, parent, title='combo1.py') pnl = wx.Panel(self) # Create a ComboCtrl cc = self.cc = wx.ComboCtrl(pnl, pos=(10,10), size=(275,-1)) cc.SetHint('Click the button -->') # Create a Popup popup = ListCtrlComboPopup() # Associate them with each other. This also triggers the # creation of the ListCtrl. cc.SetPopupControl(popup) # Add some items to the listctrl. for x in range(75): popup.AddItem("Item-%02d" % x)
def getWidget(self, parent, *args, **options): # self.widget = wx.ComboCtrl(parent) self.comboCtrl = wx.ComboCtrl(parent) self.comboCtrl.OnButtonClick = self.onButton self.foo = ListCtrlComboPopup() self.comboCtrl.SetPopupControl(self.foo) self.listbox = wx.ListBox(self, choices=self._meta['choices'], style=wx.LB_SINGLE) # model is created here because the design of these widget # classes is broken. self.model = FilterableDropdownModel(self._meta['choices'], self._options, listeners=[self.interpretState]) # overriding this to false removes it from tab behavior. # and keeps the tabbing at the top-level widget level self.listbox.AcceptsFocusFromKeyboard = lambda *args, **kwargs: False return self.comboCtrl
def __init__(self, parent, entry: "EntryFlagsEnum"): super().__init__(parent) self.entry = entry obj = self.entry.obj # Test if the obj of the entry is available if obj is None: return # Obj hsizer = wx.BoxSizer(wx.HORIZONTAL) choices = [ f"{value} ({str(name)})" for name, value in self.entry.construct.flags.items() ] checked_items = [] for key in obj.keys(): if key.startswith("_"): continue if obj[key]: checked_items.append(len(checked_items)) self.combo_ctrl = wx.ComboCtrl(self, style=wx.CB_READONLY) self.popup_ctrl = FlagsEnumComboPopup(self.entry, self._on_obj_changed) self.combo_ctrl.SetPopupControl(self.popup_ctrl) self.popup_ctrl.clbx.InsertItems(choices, 0) self.popup_ctrl.clbx.SetCheckedItems(checked_items) self.combo_ctrl.SetValue(self.entry.obj_str) hsizer.Add(self.combo_ctrl, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 0) self.SetSizer(hsizer) self.Layout()
def __init__(self, parent, saved_text=""): wx.Panel.__init__(self, parent) self.parent = parent self.user_settings = self.parent.user_settings if self.user_settings.get_text_mining_model() == "sklearn": self.ml_model = SKLearnLDA() else: self.ml_model = GensimLDA() if self.user_settings.get_is_general_font_size_enabled(): font_size = self.user_settings.get_general_font_size() else: font_size = self.user_settings.get_composer_tab_font_size() self.SetFont( wx.Font(font_size, wx.MODERN, wx.NORMAL, wx.NORMAL, False, u'Consolas')) self.user_profile = self.parent.user_profile self.SetBackgroundColour(self.user_settings.get_background_color()) if self.user_profile.username == "guest": self.compose_tab_sizer = wx.FlexGridSizer(5, 1, 0, 0) else: self.compose_tab_sizer = wx.FlexGridSizer(7, 1, 0, 0) self.compose_tab_sizer.AddGrowableRow(0, proportion=1) self.compose_tab_sizer.AddGrowableRow(1, proportion=1) if self.user_profile.username == "guest": self.compose_tab_sizer.AddGrowableRow(2, proportion=15) self.compose_tab_sizer.AddGrowableRow(3, proportion=1) self.compose_tab_sizer.AddGrowableRow(4, proportion=15) else: self.compose_tab_sizer.AddGrowableRow(2, proportion=1) self.compose_tab_sizer.AddGrowableRow(3, proportion=15) self.compose_tab_sizer.AddGrowableRow(4, proportion=1) self.compose_tab_sizer.AddGrowableRow(5, proportion=1) self.compose_tab_sizer.AddGrowableRow(6, proportion=15) self.compose_tab_sizer.AddGrowableCol(0) self.top_buttons_sizer = wx.BoxSizer(wx.HORIZONTAL) self.tts_button = wx.Button(self, label="Text To Speech") self.tts_button.SetCursor(wx.Cursor(wx.CURSOR_HAND)) self.tts_button.Bind(wx.EVT_BUTTON, self.OnTTS) self.stt_button = wx.Button(self, label="Speech To Text") self.stt_button.SetCursor(wx.Cursor(wx.CURSOR_HAND)) self.stt_button.Bind(wx.EVT_BUTTON, self.OnSTT) self.top_buttons_sizer.Add(self.tts_button, 1, wx.ALIGN_CENTER) self.top_buttons_sizer.Add(self.stt_button, 1, wx.ALIGN_CENTER) self.emojis_intext_panel = EmojisTextMiningPanel(self) self.editor_emojis_sizer = wx.FlexGridSizer(1, 2, 0, 0) self.editor_emojis_sizer.AddGrowableCol(0, proportion=4) self.editor_emojis_sizer.AddGrowableCol(1, proportion=1) self.editor_emojis_sizer.AddGrowableRow(0) self.editor = wx.TextCtrl(self, style=wx.TE_MULTILINE) self.editor.SetValue(saved_text) self.editor_emojis_sizer.Add( self.editor, 1, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT | wx.RIGHT, 5) self.editor_emojis_sizer.Add( self.emojis_intext_panel, 1, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT | wx.RIGHT, 5) self.emojis_tab = EmojiDBTab(self, composer=True) self.stt_result = wx.StaticText(self) # this is only used if a user is logged in self.save_sizer = wx.BoxSizer(wx.HORIZONTAL) self.save_button = wx.Button(self, label="Save Text") self.save_button.Bind(wx.EVT_BUTTON, self.OnSave) self.save_button.SetCursor(wx.Cursor(wx.CURSOR_HAND)) self.save_response = wx.StaticText(self) self.save_sizer.Add(self.save_button, 1, wx.ALIGN_CENTER) self.save_sizer.AddSpacer(20) self.save_sizer.Add(self.save_response, 1, wx.ALIGN_CENTER) # 3 autocomplete options self.auto_complete_options = wx.BoxSizer(wx.HORIZONTAL) self.auto_comp_opt1 = wx.Button(self, style=wx.BORDER_NONE | wx.BU_EXACTFIT) self.auto_comp_opt1.Bind(wx.EVT_BUTTON, self.OnPressAutoCorrect) self.auto_comp_opt1.SetFont( wx.Font(15, wx.MODERN, wx.NORMAL, wx.NORMAL, True, u'Consolas')) self.auto_comp_opt1.SetBackgroundColour(self.GetBackgroundColour()) self.auto_comp_opt1.SetCursor(wx.Cursor(wx.CURSOR_HAND)) self.auto_complete_options.Add(self.auto_comp_opt1, 1, wx.ALIGN_CENTER) self.auto_complete_options.AddSpacer(20) self.auto_comp_opt2 = wx.Button(self, style=wx.BORDER_NONE | wx.BU_EXACTFIT) self.auto_comp_opt2.Bind(wx.EVT_BUTTON, self.OnPressAutoCorrect) self.auto_comp_opt2.SetFont( wx.Font(15, wx.MODERN, wx.NORMAL, wx.NORMAL, True, u'Consolas')) self.auto_comp_opt2.SetBackgroundColour(self.GetBackgroundColour()) self.auto_comp_opt2.SetCursor(wx.Cursor(wx.CURSOR_HAND)) self.auto_complete_options.Add(self.auto_comp_opt2, 1, wx.ALIGN_CENTER) self.auto_complete_options.AddSpacer(20) self.auto_comp_opt3 = wx.Button(self, style=wx.BORDER_NONE | wx.BU_EXACTFIT) self.auto_comp_opt3.Bind(wx.EVT_BUTTON, self.OnPressAutoCorrect) self.auto_comp_opt3.SetFont( wx.Font(15, wx.MODERN, wx.NORMAL, wx.NORMAL, True, u'Consolas')) self.auto_comp_opt3.SetBackgroundColour(self.GetBackgroundColour()) self.auto_comp_opt3.SetCursor(wx.Cursor(wx.CURSOR_HAND)) self.auto_complete_options.Add(self.auto_comp_opt3, 1, wx.ALIGN_CENTER) self.saved_texts_options = wx.ComboCtrl(self) self.saved_texts_options.SetHint("Search Message") self.saved_texts_options.SetPopupControl(EmojiComboPopup(self)) self.saved_texts_options.GetPopupControl().GetControl().Bind( wx.EVT_LIST_ITEM_ACTIVATED, self.OnSavedTextClick) self.saved_texts_options.Bind(wx.EVT_COMBOBOX_DROPDOWN, self.OnSavedTextSelection) self.compose_tab_sizer.Add(self.top_buttons_sizer, 1, wx.EXPAND) self.compose_tab_sizer.Add(self.stt_result, 1, wx.EXPAND) if self.user_profile.username != "guest": self.compose_tab_sizer.Add( self.saved_texts_options, 1, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT | wx.RIGHT, 5) else: self.saved_texts_options.Hide() self.compose_tab_sizer.Add( self.editor_emojis_sizer, 1, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT | wx.RIGHT, 5) if self.user_profile.username != "guest": self.compose_tab_sizer.Add(self.save_sizer, 1, wx.ALIGN_CENTER) else: self.save_button.Hide() self.compose_tab_sizer.Add(self.auto_complete_options, 1, wx.ALIGN_CENTER) self.compose_tab_sizer.Add(self.emojis_tab, 1, wx.EXPAND) self.editor.Bind(wx.EVT_TEXT, self.OnInputChanged) self.emojis_in_input = set() self.emoji_sentiment_ratings = None self.SetSizer(self.compose_tab_sizer) self.Layout()
def InitUI(self): if self.mode == "DEBUG": print "In MeasurementResultsPanel" mainSizer = wx.BoxSizer(wx.HORIZONTAL) self.SetSizer(mainSizer) layoutSizer = wx.GridSizer(rows=4, cols=5, hgap=0, vgap=0) self.locale = wx.Locale(self.lang) #Time stuff timeSizer = wx.BoxSizer(wx.HORIZONTAL) timePanel = wx.Panel(self, style=wx.SIMPLE_BORDER) timePanel.SetSizer(timeSizer) timeTxt = wx.StaticText(timePanel, label=self.timeLevelsTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(50, 30)) timeSizer.Add(timeTxt, 1, wx.EXPAND) # self.timeCtrl = masked.TimeCtrl(self, displaySeconds=False, size=(200, 30), style=wx.TE_CENTRE, fmt24hr = True) # self.timeCtrl.Bind(wx.EVT_KEY_DOWN, self.OnResetTime) # self.timeCtrl.SetValue(wx.DateTime_Now().FormatTime()) #Time Header timeHeaderSizer = wx.BoxSizer(wx.HORIZONTAL) timeHeaderPanel = wx.Panel(self, style=wx.SIMPLE_BORDER) timeHeaderPanel.SetSizer(timeHeaderSizer) timeHeaderText = wx.StaticText(timeHeaderPanel, label=self.timeHeaderTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(50, 30)) timeHeaderSizer.Add(timeHeaderText, 1, wx.EXPAND) #Sensor Ref sensorRefSizer = wx.BoxSizer(wx.HORIZONTAL) sensorRefPanel = wx.Panel(self, style=wx.SIMPLE_BORDER) sensorRefPanel.SetSizer(sensorRefSizer) sensorRefTxt = wx.StaticText(sensorRefPanel, label=self.sensorRefTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(50, 30)) sensorRefSizer.Add(sensorRefTxt, 1, wx.EXPAND) #Empty Panel blankPanel = wx.Panel(self, style=wx.SIMPLE_BORDER) #Observed Val observedValSizer = wx.BoxSizer(wx.HORIZONTAL) observedValPanel = wx.Panel(self, style=wx.SIMPLE_BORDER) observedValPanel.SetSizer(observedValSizer) observedValTxt = wx.StaticText(observedValPanel, label=self.observedValTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(50, 30)) observedValSizer.Add(observedValTxt, 1, wx.EXPAND) #Sensor Val sensorValSizer = wx.BoxSizer(wx.HORIZONTAL) sensorValPanel = wx.Panel(self, style=wx.SIMPLE_BORDER) sensorValPanel.SetSizer(sensorValSizer) sensorValTxt = wx.StaticText(sensorValPanel, label=self.sensorValTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(50, 30)) sensorValSizer.Add(sensorValTxt, 1, wx.EXPAND) #Time Ctrl1 self.timeCtrlPanel1 = DropdownTime.DropdownTime(False, self, style=wx.SIMPLE_BORDER) #Time Ctrl2 self.timeCtrlPanel2 = DropdownTime.DropdownTime(False, self, style=wx.SIMPLE_BORDER) #Time Ctrl3 self.timeCtrlPanel3 = DropdownTime.DropdownTime(False, self, style=wx.SIMPLE_BORDER) #Time Ctrl4 self.timeCtrlPanel4 = DropdownTime.DropdownTime(False, self, style=wx.SIMPLE_BORDER) #Time Ctrl5 self.timeCtrlPanel5 = DropdownTime.DropdownTime(False, self, style=wx.SIMPLE_BORDER) #SensorRef/Observed Vals self.sensorRefEntry1 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) self.popup1 = ListCtrlComboPopup(self, self.sensorRefEntry1) self.popup1.AppendItems(self.sensorRef) self.sensorRefEntry1.SetPopupControl(self.popup1) self.sensorRefEntry1.SetPopupMinWidth(150) # self.sensorRefEntry1 = wx.ComboCtrl(self, style=wx.CB_SORT|wx.TE_LEFT, size=(20, 30)) # self.sensorRefEntry1Popup = ComboCtrlPopup() # self.sensorRefEntry1.SetPopupControl(ComboPopupself.sensorRefEntry1Popup) # self.sensorRefEntry1Popup.AddItems(self.sensorRef) # self.sensorRefEntry1.SetPopupMinWidth(150) self.observedVal1 = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE, size=(20, 30)) self.observedVal1.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.sensorVal1 = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE, size=(20, 30)) self.sensorVal1.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) #col2 self.sensorRefEntry2 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) self.popup2 = ListCtrlComboPopup(self, self.sensorRefEntry2) self.popup2.AppendItems(self.sensorRef) self.sensorRefEntry2.SetPopupControl(self.popup2) self.sensorRefEntry2.SetPopupMinWidth(150) # self.sensorRefEntry2 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) # self.sensorRefEntry2Popup = ComboCtrlPopup() # self.sensorRefEntry2.SetPopupControl(self.sensorRefEntry2Popup) # self.sensorRefEntry2Popup.AddItems(self.sensorRef) # self.sensorRefEntry2.SetPopupMinWidth(150) self.observedVal2 = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE, size=(20, 30)) self.observedVal2.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.sensorVal2 = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE, size=(20, 30)) self.sensorVal2.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) #col3 self.sensorRefEntry3 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) self.popup3 = ListCtrlComboPopup(self, self.sensorRefEntry3) self.popup3.AppendItems(self.sensorRef) self.sensorRefEntry3.SetPopupControl(self.popup3) self.sensorRefEntry3.SetPopupMinWidth(150) # self.sensorRefEntry3 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) # self.sensorRefEntry3Popup = ComboCtrlPopup() # self.sensorRefEntry3.SetPopupControl(self.sensorRefEntry3Popup) # self.sensorRefEntry3Popup.AddItems(self.sensorRef) # self.sensorRefEntry3.SetPopupMinWidth(150) self.observedVal3 = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE, size=(20, 30)) self.observedVal3.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.sensorVal3 = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE, size=(20, 30)) self.sensorVal3.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) #Col4 self.sensorRefEntry4 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) self.popup4 = ListCtrlComboPopup(self, self.sensorRefEntry4) self.popup4.AppendItems(self.sensorRef) self.sensorRefEntry4.SetPopupControl(self.popup4) self.sensorRefEntry4.SetPopupMinWidth(150) # self.sensorRefEntry4 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) # self.sensorRefEntry4Popup = ComboCtrlPopup() # self.sensorRefEntry4.SetPopupControl(self.sensorRefEntry4Popup) # self.sensorRefEntry4Popup.AddItems(self.sensorRef) # self.sensorRefEntry4.SetPopupMinWidth(150) self.observedVal4 = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE, size=(20, 30)) self.observedVal4.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) self.sensorVal4 = MyTextCtrl(self, style=wx.TE_PROCESS_ENTER | wx.TE_CENTRE, size=(20, 30)) self.sensorVal4.Bind(wx.EVT_TEXT, NumberControl.FloatNumberControl) # #col5 # self.sensorRefEntry5 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) # self.popup5 = ListCtrlComboPopup(self, self.sensorRefEntry5) # self.popup5.AppendItems(self.sensorRef) # self.sensorRefEntry5.SetPopupControl(self.popup5) # self.sensorRefEntry5.SetPopupMinWidth(150) # # self.sensorRefEntry5 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) # # self.sensorRefEntry5Popup = ComboCtrlPopup() # # self.sensorRefEntry5.SetPopupControl(self.sensorRefEntry5Popup) # # self.sensorRefEntry5Popup.AddItems(self.sensorRef) # # self.sensorRefEntry5.SetPopupMinWidth(150) # self.observedVal5 = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER|wx.TE_CENTRE, size=(20, 30)) # self.sensorVal5 = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER|wx.TE_CENTRE, size=(20, 30)) # #col6 # self.sensorRefEntry6 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) # self.popup6 = ListCtrlComboPopup(self, self.sensorRefEntry6) # self.popup6.AppendItems(self.sensorRef) # self.sensorRefEntry6.SetPopupControl(self.popup6) # self.sensorRefEntry6.SetPopupMinWidth(150) # # self.sensorRefEntry6 = wx.ComboCtrl(self, style=wx.CB_SORT, size=(20, 30)) # # self.sensorRefEntry6Popup = ComboCtrlPopup() # # self.sensorRefEntry6.SetPopupControl(self.sensorRefEntry6Popup) # # self.sensorRefEntry6Popup.AddItems(self.sensorRef) # # self.sensorRefEntry6.SetPopupMinWidth(150) # self.observedVal6 = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER|wx.TE_CENTRE, size=(20, 30)) # self.sensorVal6 = wx.TextCtrl(self, style=wx.TE_PROCESS_ENTER|wx.TE_CENTRE, size=(20, 30)) #Row 1 # layoutSizer.Add(timePanel, 0, wx.EXPAND) layoutSizer.Add(sensorRefPanel, 0, wx.EXPAND) layoutSizer.Add(self.sensorRefEntry1, 0, wx.EXPAND) layoutSizer.Add(self.sensorRefEntry2, 0, wx.EXPAND) layoutSizer.Add(self.sensorRefEntry3, 0, wx.EXPAND) layoutSizer.Add(self.sensorRefEntry4, 0, wx.EXPAND) # layoutSizer.Add(self.sensorRefEntry5, 0, wx.EXPAND) # layoutSizer.Add(self.sensorRefEntry6, 0, wx.EXPAND) #Row 2 layoutSizer.Add(timeHeaderPanel, 0, wx.EXPAND) layoutSizer.Add(self.timeCtrlPanel1, 0, wx.EXPAND) layoutSizer.Add(self.timeCtrlPanel2, 0, wx.EXPAND) layoutSizer.Add(self.timeCtrlPanel3, 0, wx.EXPAND) layoutSizer.Add(self.timeCtrlPanel4, 0, wx.EXPAND) # layoutSizer.Add(self.timeCtrlPanel5, 0, wx.EXPAND) # layoutSizer.Add(timeCtrlPanel6, 0, wx.EXPAND) #Row 3 # layoutSizer.Add(self.timeCtrl, 0, wx.EXPAND) layoutSizer.Add(observedValPanel, 0, wx.EXPAND) layoutSizer.Add(self.observedVal1, 0, wx.EXPAND) layoutSizer.Add(self.observedVal2, 0, wx.EXPAND) layoutSizer.Add(self.observedVal3, 0, wx.EXPAND) layoutSizer.Add(self.observedVal4, 0, wx.EXPAND) # layoutSizer.Add(self.observedVal5, 0, wx.EXPAND) # layoutSizer.Add(self.observedVal6, 0, wx.EXPAND) #Row 4 # layoutSizer.Add(blankPanel, 0, wx.EXPAND) layoutSizer.Add(sensorValPanel, 0, wx.EXPAND) layoutSizer.Add(self.sensorVal1, 0, wx.EXPAND) layoutSizer.Add(self.sensorVal2, 0, wx.EXPAND) layoutSizer.Add(self.sensorVal3, 0, wx.EXPAND) layoutSizer.Add(self.sensorVal4, 0, wx.EXPAND) # layoutSizer.Add(self.sensorVal5, 0, wx.EXPAND) # layoutSizer.Add(self.sensorVal6, 0, wx.EXPAND) loggerTimeTablePanel = wx.Panel(self, style=wx.SIMPLE_BORDER) loggerTimeTableSizer = wx.GridSizer(rows=4, cols=3, hgap=0, vgap=0) loggerTimeTablePanel.SetSizer(loggerTimeTableSizer) #Logger Time loggerTimeSizer = wx.BoxSizer(wx.HORIZONTAL) loggerTimePanel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER) loggerTimePanel.SetSizer(loggerTimeSizer) loggerTimeText = wx.StaticText(loggerTimePanel, label=self.loggerTimeTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(50, 30)) loggerTimeSizer.Add(loggerTimeText, 1, wx.EXPAND) #Col1 col1Sizer = wx.BoxSizer(wx.HORIZONTAL) col1Panel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER) col1Panel.SetSizer(col1Sizer) self.col1Combo = wx.ComboBox(col1Panel, style=wx.CB_DROPDOWN, choices=self.loggers) col1Sizer.Add(self.col1Combo, 1, wx.EXPAND) #Col2 col2Sizer = wx.BoxSizer(wx.HORIZONTAL) col2Panel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER) col2Panel.SetSizer(col2Sizer) self.col2Combo = wx.ComboBox(col2Panel, style=wx.CB_DROPDOWN, choices=self.loggers) col2Sizer.Add(self.col2Combo, 1, wx.EXPAND) #Time label remarkSizer = wx.BoxSizer(wx.HORIZONTAL) remarkPanel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER) remarkPanel.SetSizer(remarkSizer) remarkeText = wx.StaticText(remarkPanel, label=self.remarkTxtLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(50, 30)) remarkSizer.Add(remarkeText, 1, wx.EXPAND) #Reset Column 1 reset1Sizer = wx.BoxSizer(wx.HORIZONTAL) reset1Panel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER) reset1Panel.SetSizer(reset1Sizer) self.reset1Combo = wx.ComboBox(reset1Panel, style=wx.CB_DROPDOWN, choices=self.remarkChoice) reset1Sizer.Add(self.reset1Combo, 1, wx.EXPAND) #Reset Column 2 reset2Sizer = wx.BoxSizer(wx.HORIZONTAL) reset2Panel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER) reset2Panel.SetSizer(reset2Sizer) self.reset2Combo = wx.ComboBox(reset2Panel, style=wx.CB_DROPDOWN, choices=self.remarkChoice) reset2Sizer.Add(self.reset2Combo, 1, wx.EXPAND) #Oberserved label observedSizer = wx.BoxSizer(wx.HORIZONTAL) observedPanel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER) observedPanel.SetSizer(observedSizer) observedeText = wx.StaticText(observedPanel, label=self.observedTimeLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(50, 30)) observedSizer.Add(observedeText, 1, wx.EXPAND) #Time Ctrl7 self.timeCtrlPanel7 = DropdownTime.DropdownTime(False, loggerTimeTablePanel, style=wx.SIMPLE_BORDER) #Time Ctrl8 self.timeCtrlPanel8 = DropdownTime.DropdownTime(False, loggerTimeTablePanel, style=wx.SIMPLE_BORDER) #Sensor label sensorSizer = wx.BoxSizer(wx.HORIZONTAL) sensorPanel = wx.Panel(loggerTimeTablePanel, style=wx.SIMPLE_BORDER) sensorPanel.SetSizer(sensorSizer) sensoreText = wx.StaticText(sensorPanel, label=self.loggerTimeLbl, style=wx.ALIGN_CENTRE_HORIZONTAL, size=(50, 30)) sensorSizer.Add(sensoreText, 1, wx.EXPAND) #Time Ctrl9 self.timeCtrlPanel9 = DropdownTime.DropdownTime(False, loggerTimeTablePanel, style=wx.SIMPLE_BORDER) #Time Ctrl10 self.timeCtrlPanel10 = DropdownTime.DropdownTime( False, loggerTimeTablePanel, style=wx.SIMPLE_BORDER) #Row 1 loggerTimeTableSizer.Add(loggerTimePanel, 0, wx.EXPAND) loggerTimeTableSizer.Add(col1Panel, 0, wx.EXPAND) loggerTimeTableSizer.Add(col2Panel, 0, wx.EXPAND) #Row 2 loggerTimeTableSizer.Add(remarkPanel, 0, wx.EXPAND) loggerTimeTableSizer.Add(reset1Panel, 0, wx.EXPAND) loggerTimeTableSizer.Add(reset2Panel, 0, wx.EXPAND) #Row 3 loggerTimeTableSizer.Add(observedPanel, 0, wx.EXPAND) loggerTimeTableSizer.Add(self.timeCtrlPanel7, 0, wx.EXPAND) loggerTimeTableSizer.Add(self.timeCtrlPanel8, 0, wx.EXPAND) #Row 4 loggerTimeTableSizer.Add(sensorPanel, 0, wx.EXPAND) loggerTimeTableSizer.Add(self.timeCtrlPanel9, 0, wx.EXPAND) loggerTimeTableSizer.Add(self.timeCtrlPanel10, 0, wx.EXPAND) mainSizer.Add(layoutSizer, 2, wx.EXPAND) mainSizer.Add(loggerTimeTablePanel, 1, wx.EXPAND)
def __init__(self, parent): super(General, self).__init__(parent, name='General') self.parent = parent self.add_vlv = False self.vlv_chg = False # ==== For combo box drop down ===== SQL_Chk = 'SELECT Size, Sch, ID_inches, ID_mm FROM PipeDimensions' self.tbl_data = DBase.Dbase(wx.GetTopLevelParent(self.parent).parent).Dsqldata(SQL_Chk) # =================================== chcs_1 = ['inches', 'mm'] chcs_2 = ['feet', 'meters'] row_lst = [['Plastics', '0.0015', '0.00006'], ['A53\nA106', '0.0610', '0.00240'], ['Concrete\nSmooth', '0.0400', '0.00157'], ['Concrete\nRough', '2.00', '0.07874'], ['Copper\nTube', '0.6100', '0.02402'], ['Drawn\nTube', '0.0015', '0.00006'], ['Galvanized', '0.1500','0.00591'], ['Stainless\nSteel', '0.0020', '0.00008'], ['Rubber\nLined', '0.0100', '0.039']] # one sizer to fit them all self.sizer = wx.BoxSizer(wx.VERTICAL) # top outer sizer for top2 and grd1 top1_sizer = wx.BoxSizer(wx.HORIZONTAL) # top inner sizer for grd and static text box top2_sizer = wx.BoxSizer(wx.VERTICAL) grd = wx.FlexGridSizer(3,3,10,10) hdr1 = wx.StaticText(self, label='Pipe ID', style=wx.ALIGN_LEFT) hdr2 = wx.StaticText(self, label='Length', style=wx.ALIGN_LEFT) hdr3 = wx.StaticText(self, label='Absolute\nRoughness', style=wx.ALIGN_CENTER) self.unt1 = wx.Choice(self, choices=chcs_1) self.unt1.SetSelection(0) self.Bind(wx.EVT_CHOICE, self.DiaUnits, self.unt1) self.info1 = wx.ComboCtrl(self, pos=(10, 10), size=(100, -1), style=wx.CB_READONLY) self.info1.SetPopupControl( ListCtrlComboPopup(self.tbl_data, showcol=self.unt1.GetSelection()+3)) self.Bind(wx.EVT_COMBOBOX_CLOSEUP, self.WallThk, self.info1) # self.info1 = wx.TextCtrl(self, value='', style=wx.TE_RIGHT) self.info2 = wx.TextCtrl(self, value='', style=wx.TE_RIGHT) self.unt2 = wx.Choice(self, choices=chcs_2) self.unt2.SetSelection(1) self.info3 = wx.TextCtrl(self, value='', style=wx.TE_RIGHT) self.unt3 = wx.Choice(self, choices=chcs_1) self.unt3.SetSelection(0) grd.AddMany([(hdr1), (self.info1), (self.unt1), (hdr2), (self.info2), (self.unt2), (hdr3), (self.info3), (self.unt3)]) msg1 = 'This table shows suggested design values for the Absolute\n' msg2 = ' or Specific roughness, for various pipe materials.\n' msg3 = ' These values are sited from;\n\n' msg4 = ' \t- The Hydraulic Institute, Engineering Data Book.\n' msg5 = ' \t- Various vendor data compiled by SAIC, 1998\n' msg6 = ' \t- F.M. White, Fluid Mechanics, 7th edition' msg = msg1 + msg2 + msg3 + msg4 + msg5 + msg6 info_txt = wx.StaticText(self, label = msg, style = wx.ALIGN_LEFT) top2_sizer.Add(grd, 0, wx.LEFT, 20) top2_sizer.Add((10,50)) top2_sizer.Add(info_txt, 0, wx.LEFT, 20) # build the information grid for absolute roughness grd1 = gridlib.Grid(self, -1) grd1.CreateGrid(9, 3) grd1.EnableEditing(False) grd1.SetRowLabelSize(1) grd1.SetColLabelValue(0, "Pipe\nMaterial") grd1.SetColLabelValue(1, "mm") grd1.SetColLabelValue(2, "inch") grd_row = 0 for items in row_lst: grd1.SetRowSize(grd_row, 40) grd_col = 0 for item in items: grd1.SetColSize(grd_col, 90) grd1.SetCellAlignment(grd_row, grd_col, wx.ALIGN_CENTER, wx.ALIGN_CENTER) grd1.SetCellValue(grd_row, grd_col, item) grd_col += 1 grd_row += 1 top1_sizer.Add(grd1, 0, wx.LEFT, 35) top1_sizer.Add(top2_sizer, 0, wx.LEFT, 20) chk_sizer = wx.BoxSizer(wx.VERTICAL) self.prv_chk = wx.CheckBox(self, id=1, label='Add a Pressure Relief Valve', style=wx.ALIGN_RIGHT) self.bpv_chk = wx.CheckBox(self, id=2, label='or Back Pressure Valve', style=wx.ALIGN_RIGHT) self.prv_chk.SetValue(False) self.bpv_chk.SetValue(False) self.Bind(wx.EVT_CHECKBOX, self.Onvlv) chk_sizer.Add(self.prv_chk, 0, wx.ALIGN_LEFT| wx.LEFT, 30) chk_sizer.Add((10, 5)) chk_sizer.Add(self.bpv_chk, 0, wx.ALIGN_LEFT | wx.LEFT, 30) self.pnl2 = wx.Panel(self) pnl2_sizer = wx.BoxSizer(wx.VERTICAL) unt_chcs = ['psig', 'KPa', 'feet of water', 'meters of water'] unt_sizer = wx.BoxSizer(wx.HORIZONTAL) hrz2 = wx.StaticText(self.pnl2, label = 'Valve Set Pressure') self.set_press = wx.TextCtrl(self.pnl2, value='') unt_lbl = wx.StaticText(self.pnl2, label='Units') self.unt_bx = wx.Choice(self.pnl2, choices=unt_chcs, size=(-1, 30)) self.unt_bx.SetSelection(2) unt_sizer.Add(hrz2, 0, wx.ALIGN_CENTRE_VERTICAL | wx.LEFT, 25) unt_sizer.Add(self.set_press, 0, wx.LEFT, 10) unt_sizer.Add(unt_lbl, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 15) unt_sizer.Add(self.unt_bx, 0, wx.LEFT, 10) vlv_sizer = wx.BoxSizer(wx.HORIZONTAL) self.vlv_lbl = wx.StaticText(self.pnl2, label=' ') self.locate = wx.TextCtrl(self.pnl2, value='') vlv_sizer.Add(self.vlv_lbl, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 25) vlv_sizer.Add(self.locate, 0, wx.LEFT, 15) pnl2_sizer.Add(unt_sizer, 0, wx.ALIGN_CENTRE) pnl2_sizer.Add((10,20)) pnl2_sizer.Add(vlv_sizer, 0, wx.ALIGN_CENTER) self.pnl2.Hide() self.pnl2.SetSizer(pnl2_sizer) self.sizer.Add((5, 50)) self.sizer.Add(top1_sizer, border=15) self.sizer.Add((10, 25)) self.sizer.Add(chk_sizer) self.sizer.Add(self.pnl2, 0, wx.TOP, 30) self.SetSizer(self.sizer)