def __init__( self, parent ): wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u"Редактирование записи справочника", pos = wx.DefaultPosition, size = wx.Size( 479,467 ), style = wx.DEFAULT_DIALOG_STYLE ) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) bSizer6 = wx.BoxSizer( wx.VERTICAL ) bSizer7 = wx.BoxSizer( wx.VERTICAL ) self.record_propertyGrid = pg.PropertyGrid(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_DEFAULT_STYLE) bSizer7.Add( self.record_propertyGrid, 1, wx.ALL|wx.EXPAND, 5 ) bSizer6.Add( bSizer7, 1, wx.EXPAND, 5 ) bSizer8 = wx.BoxSizer( wx.HORIZONTAL ) self.cancel_button = wx.Button( self, wx.ID_ANY, u"Отмена", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer8.Add( self.cancel_button, 0, wx.ALL, 5 ) self.ok_button = wx.Button( self, wx.ID_ANY, u"OK", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer8.Add( self.ok_button, 0, wx.ALL, 5 ) bSizer6.Add( bSizer8, 0, wx.ALIGN_RIGHT, 5 ) self.SetSizer( bSizer6 ) self.Layout() self.Centre( wx.BOTH ) # Connect Events self.cancel_button.Bind( wx.EVT_BUTTON, self.onCancelButtonClick ) self.ok_button.Bind( wx.EVT_BUTTON, self.onOkButtonClick )
def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title=u"Settings", pos=wx.DefaultPosition, size=wx.Size(546, 342), style=wx.CAPTION | wx.CLOSE_BOX) self.SetSizeHints(wx.Size(200, 200), wx.DefaultSize) bSizer9 = wx.BoxSizer(wx.VERTICAL) self.m_panel10 = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.Size(600, 320), wx.TAB_TRAVERSAL) bSizer13 = wx.BoxSizer(wx.VERTICAL) self.pgSettings = pg.PropertyGrid( self.m_panel10, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_BOLD_MODIFIED | wx.propgrid.PG_DEFAULT_STYLE | wx.TAB_TRAVERSAL) bSizer13.Add(self.pgSettings, 1, wx.ALL | wx.EXPAND, 5) self.m_panel10.SetSizer(bSizer13) self.m_panel10.Layout() bSizer9.Add(self.m_panel10, 1, wx.EXPAND | wx.ALL, 5) self.SetSizer(bSizer9) self.Layout() self.Centre(wx.BOTH) # Connect Events self.Bind(wx.EVT_CLOSE, self.onSettingsSave) self.Bind(wx.EVT_INIT_DIALOG, self.onSettingsLoad)
def __init__(self, parent, pipeline): wx.Panel.__init__(self, parent=parent, id=wx.ID_ANY) self.pipeline = pipeline # Setup main settings panel. settingsGridSizer = wx.BoxSizer(wx.HORIZONTAL) self.settingsGrid = wx_propgrid.PropertyGrid(self, size=(500, 500)) settingsGridSizer.Add(self.settingsGrid, 1, wx.EXPAND) self.settingsGrid.Append( wx_propgrid.PropertyCategory("Basic Analysis Settings")) self.settingsGrid.Append( wx_propgrid.StringProperty("Pipeline name", "pipelineName", self.pipeline.pipelineName)) self.settingsGrid.Append( wx_propgrid.DirProperty("Data directory", "dataDirectory", self.pipeline.dataDirectory)) self.settingsGrid.Append( wx_propgrid.StringProperty("Data filename", "dataFilename", self.pipeline.dataFilename)) self.SetSizerAndFit(settingsGridSizer) self.Bind(wx_propgrid.EVT_PG_CHANGED, self.onUpdateMainSettingsGrid, self.settingsGrid)
def __init__(self, manager, filename): self.manager = manager self.filename = filename nb = wx.GetApp().nb_right accelerators = nb.get_generic_accelerators() acctable = wx.GetApp().root.accmanager.generate_table(nb, accelerators) self.panel = DatabasePropertiesPanel(nb, self, acctable) sizer = wx.BoxSizer(wx.VERTICAL) self.panel.SetSizer(sizer) # PropertyGrid doesn't support TAB traversal (bug #331) self.propgrid = wxpg.PropertyGrid(self.panel, style=wxpg.PG_TOOLTIPS) self.propgrid.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS) sizer.Add(self.propgrid, 1, flag=wx.EXPAND) nb.add_page(self.panel, os.path.basename(self.filename), imageId=self.manager.get_notebook_icon_index()) self.onchange_actions = {} # Temporary fix for bug #331 self.propgrid.Bind(wx.EVT_KEY_DOWN, self._handle_esc_down) # Temporary fix for bug #331 self.propgrid.Bind(wx.EVT_KEY_DOWN, self._handle_tab_down) self.propgrid.Bind(wxpg.EVT_PG_CHANGED, self._handle_property_changed)
def __init__(self, parent,confFile,expectList,uname): #confFile is a filename doesn't include path #expectList is a list of confGroup, each confGroup is a two element tuple: (group_name, conf_list) # conf_list is a list of conf, each conf is a two element tuple(conf_name, conf_dict) # each conf_dict inlcude following keys: "desc","value","type" # "type" is one of following: string, directory, int, float wx.Dialog.__init__(self, parent) self.grid=wxpg.PropertyGrid(self,wx.ID_ANY,style=wxpg.PG_SPLITTER_AUTO_CENTER) self.grid.SetColumnProportion(0,2) self.grid.SetColumnProportion(0,1) self.uname=uname self.confFName=confFile self.confPath=self.confFName self.confList=expectList self.loadConfFile() self.refereshView() self.__set_properties() self.__do_layout() self.Centre() okb=self.bsizer.GetAffirmativeButton() canb=self.bsizer.GetCancelButton() self.Bind(wx.EVT_BUTTON,self.OnOK,okb) self.Bind(wx.EVT_BUTTON,self.OnCancel,canb) self.grid.CenterSplitter(False)
def load(self, res, parent): self._panel = res.LoadPanel(parent, 'BeaconModule') # type: wx.Panel self._props = propgrid.PropertyGrid(parent=self._panel, style=propgrid.PG_TOOLTIPS | propgrid.PG_AUTO_SORT) self._props.SetExtraStyle(propgrid.PG_EX_HELP_AS_TOOLTIPS) self._panel.GetSizer().Add(self._props, 1, wx.EXPAND)
def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title=_(u"Record edit"), pos=wx.DefaultPosition, size=wx.Size(886, 467), style=wx.DEFAULT_DIALOG_STYLE) self.SetSizeHints(wx.DefaultSize, wx.DefaultSize) bSizer6 = wx.BoxSizer(wx.VERTICAL) bSizer7 = wx.BoxSizer(wx.VERTICAL) self.activate_checkBox = wx.CheckBox(self, wx.ID_ANY, _(u"On/Off"), wx.DefaultPosition, wx.DefaultSize, 0) self.activate_checkBox.SetValue(True) bSizer7.Add(self.activate_checkBox, 0, wx.ALL | wx.EXPAND, 5) self.cod_constructor = iq.KERNEL.obj.iq.cod_constructor.create( parent=self) bSizer7.Add(self.cod_constructor, 1, wx.ALL | wx.EXPAND, 5) self.record_propertyGrid = pg.PropertyGrid( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_DEFAULT_STYLE | wx.propgrid.PG_STATIC_SPLITTER) bSizer7.Add(self.record_propertyGrid, 1, wx.ALL | wx.EXPAND, 5) bSizer6.Add(bSizer7, 1, wx.EXPAND, 5) bSizer8 = wx.BoxSizer(wx.HORIZONTAL) self.cancel_button = wx.Button(self, wx.ID_ANY, _(u"Cancel"), wx.DefaultPosition, wx.DefaultSize, 0) bSizer8.Add(self.cancel_button, 0, wx.ALL, 5) self.ok_button = wx.Button(self, wx.ID_ANY, _(u"OK"), wx.DefaultPosition, wx.DefaultSize, 0) bSizer8.Add(self.ok_button, 0, wx.ALL, 5) bSizer6.Add(bSizer8, 0, wx.ALIGN_RIGHT, 5) self.SetSizer(bSizer6) self.Layout() self.Centre(wx.BOTH) # Connect Events self.activate_checkBox.Bind(wx.EVT_CHECKBOX, self.onActivateCheckBox) self.cancel_button.Bind(wx.EVT_BUTTON, self.onCancelButtonClick) self.ok_button.Bind(wx.EVT_BUTTON, self.onOkButtonClick)
def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(900, 600), style=wx.TAB_TRAVERSAL, name=wx.EmptyString): wx.Panel.__init__(self, parent, id=id, pos=pos, size=size, style=style, name=name) plc_layout = wx.BoxSizer(wx.VERTICAL) self.plc_split = wx.SplitterWindow(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SP_3D) self.plc_split.Bind(wx.EVT_IDLE, self.plc_splitOnIdle) self.plc_preview = PlaceViewer(self.plc_split, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.plc_data = wx.Panel(self.plc_split, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) plc_data_layout = wx.BoxSizer(wx.VERTICAL) self.plc_items = wx.TreeCtrl(self.plc_data, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TR_DEFAULT_STYLE | wx.TR_HIDE_ROOT) plc_data_layout.Add(self.plc_items, 1, wx.ALL | wx.EXPAND, 5) self.plc_item_data = pg.PropertyGrid(self.plc_data, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_DEFAULT_STYLE) self.m_propertyGridItem1 = self.plc_item_data.Append( pg.StringProperty(u"Name", u"Name")) plc_data_layout.Add(self.plc_item_data, 1, wx.ALL | wx.EXPAND, 5) self.plc_data.SetSizer(plc_data_layout) self.plc_data.Layout() plc_data_layout.Fit(self.plc_data) self.plc_split.SplitVertically(self.plc_preview, self.plc_data, 0) plc_layout.Add(self.plc_split, 1, wx.EXPAND, 5) self.SetSizer(plc_layout) self.Layout() # Connect Events self.plc_items.Bind(wx.EVT_TREE_SEL_CHANGED, self.plc_items_selchanged)
def test_propgridiface03(self): # Ensure SetPropertyValue doesn't truncate floats pgrid = pg.PropertyGrid(self.frame) pgrid.Append(pg.FloatProperty('Float', value=123.456)) value = pgrid.GetPropertyValue('Float') assert type(value) is float assert value == 123.456 pgrid.SetPropertyValue('Float', 654.321) value = pgrid.GetPropertyValue('Float') assert type(value) is float assert value == 654.321
def __init__(self, parent, title, graph): #super(ChildFrame, self).__init__(parent, title=title, size=graph['size']) super(ChildFrame, self).__init__(parent, title=title) self.graph = graph self.pen_color = wx.Colour('black') self.foreground_color = wx.Colour('gray') self.background_color = wx.Colour('white') self.dictionary = {} self.get_dict(self.graph, self.dictionary) icon = wx.Icon() if self.graph['type'] == 'onnx': icon.CopyFromBitmap(wx.Bitmap(os.path.join(pwd(), 'icons', 'onnx.png'), wx.BITMAP_TYPE_ANY)) elif self.graph['type'] == 'tensorflow': icon.CopyFromBitmap(wx.Bitmap(os.path.join(pwd(), 'icons', 'tf.png'), wx.BITMAP_TYPE_ANY)) elif self.graph['type'] == 'keras': icon.CopyFromBitmap(wx.Bitmap(os.path.join(pwd(), 'icons', 'keras.png'), wx.BITMAP_TYPE_ANY)) elif self.graph['type'] == 'pytorch': icon.CopyFromBitmap(wx.Bitmap(os.path.join(pwd(), 'icons', 'pytorch.png'), wx.BITMAP_TYPE_ANY)) else: icon.CopyFromBitmap(wx.Bitmap(os.path.join(pwd(), 'icons', 'model.png'), wx.BITMAP_TYPE_ANY)) self.SetIcon(icon) self.canvas = wx.ScrolledCanvas(self, True) self.property = propgrid.PropertyGrid(self, size=(300, 500)) self.box = wx.BoxSizer(wx.HORIZONTAL) self.box.Add(self.canvas, wx.ID_ANY, flag=wx.EXPAND|wx.ALL|wx.LEFT, border=1) self.box.Add(self.property, 0, flag=wx.EXPAND|wx.RIGHT, border=1) self.SetSizer(self.box) self.dc = None self.canvas.Bind(wx.EVT_PAINT, self.on_paint) self.canvas.Bind(wx.EVT_LEFT_DOWN, self.on_left_down) self.thumbnail = wx.Panel(self.canvas, style=wx.SIMPLE_BORDER) self.thumbnail.Bind(wx.EVT_PAINT, self.on_paint_thumb) self.thumbnail.Bind(wx.EVT_LEFT_DOWN, self.on_key_down) self.thumb_dc = None #self.thumb_ratio = 20 self.thumb_ratio_x = 20 self.thumb_ratio_y = 20 self.thumb_max_len = 300 self.Maximize() self.Show(True) canvas_size = self.canvas.GetSize() self.x_units, self.y_units = math.ceil(canvas_size[0]/2), math.ceil(canvas_size[1]/2) self.GetParent().add_history([self.GetId(), self.graph['name'], self.graph['selected']])
def construct_toplevel_ui(self, parent): # Difference between using PropertyGridManager vs PropertyGrid is that # the manager supports multiple pages and a description box. style = wxpg.PG_SPLITTER_AUTO_CENTER | wxpg.PG_TOOLBAR prop_grid = wxpg.PropertyGrid(parent, style=style) # Show help as tooltips prop_grid.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS) prop_grid.Bind(wxpg.EVT_PG_CHANGED, self.on_property_changed, prop_grid) self.initialize_fixed_properties(prop_grid) self.initialize_dynamic_properties(prop_grid) return prop_grid
def __init__(self, parent): wx.Panel.__init__(self, parent, -1, style=wx.WANTS_CHARS) topsizer = wx.BoxSizer(wx.VERTICAL) self.pg = pg = wxpg.PropertyGrid(self, style=wxpg.PG_SPLITTER_AUTO_CENTER | wxpg.PG_TOOLBAR) pg.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS | wxpg.PG_EX_MULTIPLE_SELECTION) topsizer.Add(pg, 1, wx.EXPAND) rowsizer = wx.BoxSizer(wx.HORIZONTAL) self.delete = wx.Button(self, -1, "Delete Object") rowsizer.Add(self.delete, 1) topsizer.Add(rowsizer, 0, wx.EXPAND) self.SetSizer(topsizer) topsizer.SetSizeHints(self)
def __init__(self, parent): wx.Panel.__init__(self, parent, wx.ID_ANY) self.panel = wx.Panel(self, wx.ID_ANY) # Difference between using PropertyGridManager vs PropertyGrid is that # the manager supports multiple pages and a description box. self.pg = wxpg.PropertyGrid(self.panel, style=wxpg.PG_DEFAULT_STYLE | wxpg.PG_SPLITTER_AUTO_CENTER) self.topsizer = wx.BoxSizer(wx.VERTICAL) self.topsizer.Add(self.pg, 1, wx.EXPAND) self.ClearProperties() # initialize data structures # Show help as tooltips self.pg.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS) self.pg.Bind(wxpg.EVT_PG_CHANGED, self.OnPropGridChange) self.pg.Bind(wxpg.EVT_PG_PAGE_CHANGED, self.OnPropGridPageChange) self.pg.Bind(wxpg.EVT_PG_SELECTED, self.OnPropGridSelect) self.pg.Bind(wxpg.EVT_PG_RIGHT_CLICK, self.OnPropGridRightClick) self.pg.Bind(wx.EVT_MOUSE_EVENTS, self.OnMouse) self.panel.SetSizer(self.topsizer) self.topsizer.SetSizeHints(self.panel) self.sizer = wx.BoxSizer(wx.VERTICAL) self.sizer.Add(self.panel, 1, wx.EXPAND) self.SetSizer(self.sizer) self.SetAutoLayout(True) self.inAddProperty = 0 self.in_OnPropGridChange = False # Register editor class - needs only to be called once self.multiButtonEditor = SampleMultiButtonEditor() self.pg.RegisterEditor(self.multiButtonEditor) self.trivialPropertyEditor = TrivialPropertyEditor() self.pg.RegisterEditor(self.trivialPropertyEditor) self.EXTRA_TOOLBAR_HEIGHT = 7 # todo set to 14 for Linux
def __init__( self, parent, log ): wx.Panel.__init__(self, parent, wx.ID_ANY) self.log = log self.callback = None self.panel = panel = wx.Panel(self, wx.ID_ANY) topsizer = wx.BoxSizer(wx.VERTICAL) # Difference between using PropertyGridManager vs PropertyGrid is that # the manager supports multiple pages and a description box. self.pg = pg = wxpg.PropertyGrid(panel, style=wxpg.PG_SPLITTER_AUTO_CENTER | wxpg.PG_AUTO_SORT | wxpg.PG_TOOLBAR) # Show help as tooltips pg.SetExtraStyle(wxpg.PG_EX_HELP_AS_TOOLTIPS) pg.Bind( wxpg.EVT_PG_CHANGED, self.OnPropGridChange ) pg.Bind( wxpg.EVT_PG_PAGE_CHANGED, self.OnPropGridPageChange ) pg.Bind( wxpg.EVT_PG_SELECTED, self.OnPropGridSelect ) pg.Bind( wxpg.EVT_PG_RIGHT_CLICK, self.OnPropGridRightClick ) ##pg.AddPage( "Page 1 - Testing All" ) # store the property grid for future reference self.pg = pg # load empty object (just draws categories) self.load_object(None) # sizing stuff: topsizer.Add(pg, 1, wx.EXPAND) panel.SetSizer(topsizer) topsizer.SetSizeHints(panel) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(panel, 1, wx.EXPAND) self.SetSizer(sizer) self.SetAutoLayout(True)
def __init__(self, *args, **kwds): # begin wxGlade: MainPannel.__init__ #kwds["style"] = wx.TAB_TRAVERSAL|wx.BORDER_DEFAULT|wx.CLOSE_BOX wx.Dialog.__init__(self, *args, **kwds) self.grid = wxpg.PropertyGrid(self, wx.ID_ANY) self.grid.Append( wxpg.IntProperty(_("Password Length"), "plen", value=16)) self.grid.Append( wxpg.BoolProperty(_("Use lowercause letters"), "lowercase", value=True)) self.grid.SetPropertyAttribute("lowercase", "UseCheckbox", True) self.grid.Append( wxpg.BoolProperty(_("Use Uppercase letters"), "uppercase", value=True)) self.grid.SetPropertyAttribute("uppercase", "UseCheckbox", True) self.grid.Append( wxpg.BoolProperty(_("Use digits"), "digit", value=True)) self.grid.SetPropertyAttribute("digit", "UseCheckbox", True) self.grid.Append( wxpg.BoolProperty(_("Use punctions"), "punction", value=True)) self.grid.SetPropertyAttribute("punction", "UseCheckbox", True) self.grid.Append( wxpg.StringProperty(_("Use custom letters"), "custom", value="")) self.passwd = u"" self.__set_properties() self.__do_layout() okb = self.bsizer.GetAffirmativeButton() canb = self.bsizer.GetCancelButton() self.Bind(wx.EVT_BUTTON, self.OnOK, okb) self.Bind(wx.EVT_BUTTON, self.OnCancel, canb) self.Centre()
def AddExtraControls(self, res): self.grid=wxpg.PropertyGrid(self) self.grid.SetMarginColour(wx.Colour(255,255,255)) res.AttachUnknownControl("ValueGrid", self.grid)
def AddExtraControls(self, res): self.grid = wxpg.PropertyGrid(self) res.AttachUnknownControl("ValueGrid", self.grid)
def test_propgrid03(self): pgrid = pg.PropertyGrid(self.frame)
def __init__(self, *args, **kwargs): kwargs['title'] = 'Key Config' wx.Dialog.__init__(self, *args, **kwargs) self.Bind(wx.EVT_CHAR_HOOK, self.OnCharHook) main_sizer = wx.BoxSizer(wx.VERTICAL) self.pg = pg = wxpg.PropertyGrid(self) pg.Bind(wxpg.EVT_PG_CHANGED, self.OnPropGridChange) pg.Append(wxpg.PropertyCategory("Key Parameters")) prop = wxpg.StringProperty("Layout Coordinates", "layout", value="Row 0, Col 0") prop.ChangeFlag(wxpg.PG_PROP_READONLY, True) pg.Append(prop) prop = wxpg.StringProperty("Matrix Coordinates", "matrix", value="Row 0, Col 0") prop.ChangeFlag(wxpg.PG_PROP_READONLY, True) pg.Append(prop) prop = wxpg.StringProperty("Key Geometry", "geom", value="Height 0, Width 0") prop.ChangeFlag(wxpg.PG_PROP_READONLY, True) pg.Append(prop) pg.Append(wxpg.PropertyCategory("Key Assignment")) pg.Append(ScancodeProperty("Scancode", "code")) pg.LimitPropertyEditing("code", limit=True) labels = list(key_mode_map.keys()) values = list(key_mode_map.values()) pg.Append( wxpg.EnumProperty("Mode", "mode", labels=labels, values=values)) pg.Append(ScancodeProperty("Tap Code", "tap")) pg.LimitPropertyEditing("tap", limit=True) pg.EnableProperty("tap", enable=False) labels = list(with_mods_map.keys()) values = list(with_mods_map.values()) prop = wxpg.FlagsProperty("Automods", "wmods", labels=labels, values=values) prop.SetAttribute(wxpg.PG_BOOL_USE_CHECKBOX, True) pg.Append(prop) pg.LimitPropertyEditing(prop, limit=True) pg.ExpandAll() minHeight = (13 * pg.GetRowHeight()) + 4 minWidth = int(minHeight * 1.25) pg.SetMinSize((minWidth, minHeight)) pg.FitColumns() main_sizer.Add(pg, proportion=1, flag=wx.EXPAND) self.SetSizer(main_sizer) main_sizer.Fit(self) self.Layout()
def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title=u"Logging", pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE) self.parent = parent self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) sizer_A = wx.BoxSizer(wx.VERTICAL) sizer_AA = wx.StaticBoxSizer( wx.StaticBox(self, wx.ID_ANY, u"Log File"), wx.VERTICAL) sizer_AAA = wx.FlexGridSizer(0, 2, 0, 0) sizer_AAA.AddGrowableCol(1) sizer_AAA.SetFlexibleDirection(wx.BOTH) sizer_AAA.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.cb_Logging = wx.CheckBox(self, wx.ID_ANY, u"File Logging Enabled", wx.DefaultPosition, wx.DefaultSize, 0) sizer_AAA.Add(self.cb_Logging, 0, wx.ALL, 5) sizer_AAA.AddSpacer((0, 0), 1, wx.EXPAND, 5) self.lbl_LogPath = wx.StaticText(self, wx.ID_ANY, u"Log File Path:", wx.DefaultPosition, wx.DefaultSize, 0) self.lbl_LogPath.Wrap(-1) sizer_AAA.Add(self.lbl_LogPath, 0, wx.ALL, 5) self.dp_LogPath = wx.DirPickerCtrl(self, wx.ID_ANY, wx.EmptyString, u"Select a folder", wx.DefaultPosition, wx.DefaultSize, wx.DIRP_DEFAULT_STYLE) self.dp_LogPath.SetMinSize(wx.Size(350, -1)) sizer_AAA.Add(self.dp_LogPath, 0, wx.ALL, 5) self.cb_Timestamp = wx.CheckBox(self, wx.ID_ANY, u"Timestamp Enabled", wx.DefaultPosition, wx.DefaultSize, 0) self.cb_Timestamp.SetValue(True) sizer_AAA.Add(self.cb_Timestamp, 0, wx.ALL, 5) self.tc_Timestamp = wx.TextCtrl(self, wx.ID_ANY, "%d/%m/%Y %I:%M:%S %p", wx.DefaultPosition, wx.DefaultSize, 0) sizer_AAA.Add(self.tc_Timestamp, 0, wx.ALL | wx.EXPAND, 5) self.lbl_LogFormat = wx.StaticText(self, wx.ID_ANY, u"Output Format", wx.DefaultPosition, wx.DefaultSize, 0) self.lbl_LogFormat.Wrap(-1) sizer_AAA.Add(self.lbl_LogFormat, 0, wx.ALL, 5) self.tc_LogFormat = wx.TextCtrl( self, wx.ID_ANY, "%(asctime)-15s - %(levelname)s - %(message)s", wx.DefaultPosition, wx.DefaultSize, 0) sizer_AAA.Add(self.tc_LogFormat, 0, wx.ALL | wx.EXPAND, 5) sizer_AAAA = wx.BoxSizer(wx.VERTICAL) sizer_AAAA.AddSpacer((0, 0), 1, wx.EXPAND, 5) self.btn_CheckLogs = wx.Button(self, wx.ID_ANY, u"Check Old Logs ", wx.DefaultPosition, wx.DefaultSize, 0) sizer_AAAA.Add(self.btn_CheckLogs, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND, 2) self.btn_ClearLogs = wx.Button(self, wx.ID_ANY, u"Clear Log Now", wx.DefaultPosition, wx.DefaultSize, 0) sizer_AAAA.Add(self.btn_ClearLogs, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.EXPAND, 2) sizer_AAA.Add(sizer_AAAA, 1, wx.ALIGN_CENTER | wx.EXPAND | wx.ALIGN_CENTER_VERTICAL, 5) self.pg_LogDetails = pg.PropertyGrid(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_BOLD_MODIFIED|\ wx.propgrid.PG_HIDE_MARGIN) #|wx.propgrid.PG_STATIC_LAYOUT self.pgItem_Name = self.pg_LogDetails.Append( pg.StringProperty(u"Name", u"Name")) self.pgItem_Size = self.pg_LogDetails.Append( pg.StringProperty(u"Size", u"Size")) sizer_AAA.Add(self.pg_LogDetails, 0, wx.ALL | wx.EXPAND, 5) sizer_AA.Add(sizer_AAA, 1, wx.EXPAND, 5) sizer_A.Add(sizer_AA, 1, wx.EXPAND, 5) sizer_AB = wx.StdDialogButtonSizer() self.sizer_ABSave = wx.Button(self, wx.ID_SAVE) sizer_AB.AddButton(self.sizer_ABSave) self.sizer_ABCancel = wx.Button(self, wx.ID_CANCEL) sizer_AB.AddButton(self.sizer_ABCancel) sizer_AB.Realize() sizer_A.Add(sizer_AB, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.TOP | wx.BOTTOM, 10) self.SetSizer(sizer_A) self.Layout() sizer_A.Fit(self) self.Centre(wx.BOTH) # Connect Events self.Bind(wx.EVT_INIT_DIALOG, self.dlgInit) self.btn_CheckLogs.Bind(wx.EVT_BUTTON, self.checkOldLogs) self.btn_ClearLogs.Bind(wx.EVT_BUTTON, self.clearLogs) self.sizer_ABCancel.Bind(wx.EVT_BUTTON, self.cancel) self.sizer_ABSave.Bind(wx.EVT_BUTTON, self.save)
def __init__( self, parent ): wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = u"DICOMDIR Browser", pos = wx.DefaultPosition, size = wx.Size( 812,602 ), style = wx.DEFAULT_DIALOG_STYLE ) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) bSizer145 = wx.BoxSizer( wx.VERTICAL ) bSizer199 = wx.BoxSizer( wx.HORIZONTAL ) self.m_panelMainArea = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_panelMainArea.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) ) bSizer199.Add( self.m_panelMainArea, 1, wx.EXPAND |wx.ALL, 5 ) bSizer197 = wx.BoxSizer( wx.VERTICAL ) bSizer197.SetMinSize( wx.Size( -1,180 ) ) sbSizer77 = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, u"Details" ), wx.VERTICAL ) self.m_propertyGrid = pg.PropertyGrid(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_AUTO_SORT|wx.propgrid.PG_DEFAULT_STYLE) sbSizer77.Add( self.m_propertyGrid, 1, wx.EXPAND, 5 ) self.m_searchCtrl = wx.SearchCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_PROCESS_ENTER ) self.m_searchCtrl.ShowSearchButton( True ) self.m_searchCtrl.ShowCancelButton( True ) sbSizer77.Add( self.m_searchCtrl, 0, wx.BOTTOM|wx.EXPAND|wx.TOP, 5 ) bSizer197.Add( sbSizer77, 1, wx.EXPAND|wx.RIGHT, 5 ) sbSizer76 = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, u"Preview" ), wx.VERTICAL ) sbSizer76.SetMinSize( wx.Size( 260,260 ) ) self.m_bitmapPreview = wx.StaticBitmap( self, wx.ID_ANY, wx.NullBitmap, wx.DefaultPosition, wx.DefaultSize, 0 ) sbSizer76.Add( self.m_bitmapPreview, 1, wx.EXPAND, 5 ) bSizer197.Add( sbSizer76, 0, wx.BOTTOM|wx.EXPAND|wx.RIGHT, 5 ) bSizer199.Add( bSizer197, 0, wx.EXPAND, 5 ) bSizer145.Add( bSizer199, 1, wx.EXPAND, 5 ) self.m_staticline1 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer145.Add( self.m_staticline1, 0, wx.EXPAND |wx.ALL, 5 ) m_sdbSizer1 = wx.StdDialogButtonSizer() self.m_sdbSizer1OK = wx.Button( self, wx.ID_OK ) m_sdbSizer1.AddButton( self.m_sdbSizer1OK ) self.m_sdbSizer1Cancel = wx.Button( self, wx.ID_CANCEL ) m_sdbSizer1.AddButton( self.m_sdbSizer1Cancel ) m_sdbSizer1.Realize(); bSizer145.Add( m_sdbSizer1, 0, wx.BOTTOM|wx.EXPAND, 5 ) self.SetSizer( bSizer145 ) self.Layout() self.Centre( wx.BOTH ) # Connect Events self.m_searchCtrl.Bind( wx.EVT_SEARCHCTRL_CANCEL_BTN, self.onSearchCancel ) self.m_searchCtrl.Bind( wx.EVT_SEARCHCTRL_SEARCH_BTN, self.onSearch ) self.m_searchCtrl.Bind( wx.EVT_TEXT_ENTER, self.onSearch )
def __init__(self, RunForm, parent ): wx.Notebook.__init__(self, parent, style=wx.BK_DEFAULT, size=(500, 50) ) # Create panels and pages for each of the three notebook tabs. parameterGridPanel = wx.Panel(self, -1) settingsPanel = wx.Panel(self, -1) executionPanel = wx.Panel(self, -1) self.AddPage(parameterGridPanel, "Parameter Grid") self.AddPage(settingsPanel, "Run Configuration") self.AddPage(executionPanel, "Resources and Execution") # ***** PARAMETER GRID TAB ***** parameterGridSizer = wx.BoxSizer( wx.HORIZONTAL ) RunForm.speciesGrid = ParameterGrid( parameterGridPanel, RunForm.run ) parameterGridSizer.Add( RunForm.speciesGrid, 1, wx.EXPAND ) parameterGridPanel.SetSizerAndFit( parameterGridSizer ) # Create the parameter grid control. RunForm.speciesGrid.CreateGrid( RunForm.run.species.numRows, RunForm.run.species.numColumns ) RunForm.speciesGrid.SetColLabelValue( 0, "Parameter" ) RunForm.speciesGrid.SetColLabelValue( 1, "Type") RunForm.speciesGrid.SetColLabelValue( 2, "Value(s)") RunForm.speciesGrid.SetColLabelValue( 3, "Directory Order") RunForm.speciesGrid.SetColSize( 3, 100 ) # ***** RUN SETTINGS TAB ***** runSettingsSizer = wx.BoxSizer( wx.VERTICAL ) RunForm.runPropertiesGrid = wx_propgrid.PropertyGrid( settingsPanel, size=(300, 300) ) runSettingsSizer.Add( RunForm.runPropertiesGrid, 2, wx.EXPAND ) settingsPanel.SetSizerAndFit( runSettingsSizer ) RunForm.runPropertiesGrid.Append( wx_propgrid.PropertyCategory( "Basic Script Properties" ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.StringProperty( "Script filename", "scriptFilename", RunForm.run.runSettings.scriptFilename ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.DirProperty( "Script output location", "scriptLocation", RunForm.run.runSettings.scriptLocation ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.LongStringProperty( "Run notes", "runNotes", RunForm.run.runNotes ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.PropertyCategory( "Executable Properties" ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.FileProperty( "Executable filename", "executableFilename", RunForm.run.runSettings.executableFilename ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.FileProperty( "Output filename", "outputFilename", RunForm.run.runSettings.outputFilename ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.FileProperty( "Input filename", "inputFilename", RunForm.run.runSettings.inputFilename ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.DirProperty( "Source path", "sourcePath", RunForm.run.runSettings.sourcePath ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.PropertyCategory( "Basic Script Tasks" ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.BoolProperty("Compile executable from source", "optionCompileSource", RunForm.run.runSettings.optionCompileSource ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.BoolProperty("Build directory structure", "optionBuildDirectoryStructure", RunForm.run.runSettings.optionBuildDirectoryStructure ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.BoolProperty("Disable input redirection", "optionDisableInputRedirection", RunForm.run.runSettings.optionDisableInputRedirection ) ) RunForm.runPropertiesGrid.Append( wx_propgrid.BoolProperty("Generate status check script", "optionGenerateCheckStatusScript", RunForm.run.runSettings.optionGenerateCheckStatusScript ) ) # ***** RESOURCES AND EXECUTION PANEL ***** executionSettingsSizer = wx.BoxSizer( wx.VERTICAL ) RunForm.singleMachinePropertyGrid = wx_propgrid.PropertyGrid( executionPanel ) RunForm.executionChoiceBook = wx.Choicebook( executionPanel, id=wx.ID_ANY ) executionSettingsSizer.Add( RunForm.executionChoiceBook, 1, wx.EXPAND ) executionPanel.SetSizerAndFit( executionSettingsSizer ) panelSingleMachine = wx.Panel( RunForm.executionChoiceBook ) panelPBS = wx.Panel( RunForm.executionChoiceBook ) panelSingleMachineMPI = wx.Panel( RunForm.executionChoiceBook ) panelPBSMPI = wx.Panel( RunForm.executionChoiceBook ) RunForm.executionChoiceBook.AddPage( panelSingleMachine, "Single Machine or Interactive Job (Recovery Enabled)") RunForm.executionChoiceBook.AddPage( panelPBS, "PBS Scheduler on Cluster") #RunForm.executionChoiceBook.AddPage( panelSingleMachineMPI, "Single Machine or Interactive Job using MPI") #RunForm.executionChoiceBook.AddPage( panelPBSMPI, "PBS Scheduler on Cluster using MPI") # SINGLE MACHINE SETTINGS RunForm.propertyGridSingleMachine = wx_propgrid.PropertyGrid( panelSingleMachine ) sizerGridSingleMachine = wx.BoxSizer( wx.VERTICAL ) sizerGridSingleMachine.Add( RunForm.propertyGridSingleMachine, 1, wx.EXPAND ) panelSingleMachine.SetSizerAndFit( sizerGridSingleMachine ) RunForm.propertyGridSingleMachine.Append( wx_propgrid.PropertyCategory( "Resources" ) ) RunForm.propertyGridSingleMachine.Append( wx_propgrid.IntProperty( "Number of simultaneous runs", "numSimRuns", RunForm.run.availableModules.SingleMachineResourceManager.numSimRuns ) ) RunForm.propertyGridSingleMachine.Append( wx_propgrid.IntProperty( "Process status check delay (seconds)", "procCheckWaitTime", RunForm.run.availableModules.SingleMachineResourceManager.procCheckWaitTime ) ) RunForm.propertyGridSingleMachine.Append( wx_propgrid.PropertyCategory( "Additional Commands" ) ) RunForm.propertyGridSingleMachine.Append( wx_propgrid.LongStringProperty( "Additional pre-execution commands", "additionalPreExecutionCommands", RunForm.run.availableModules.SingleMachineResourceManager.additionalPreExecutionCommands ) ) RunForm.propertyGridSingleMachine.Append( wx_propgrid.LongStringProperty( "Additional post-execution commands", "additionalPostExecutionCommands", RunForm.run.availableModules.SingleMachineResourceManager.additionalPostExecutionCommands ) ) # PBS SETTINGS RunForm.propertyGridPBS = wx_propgrid.PropertyGrid( panelPBS ) sizerGridPBS = wx.BoxSizer( wx.VERTICAL ) sizerGridPBS.Add( RunForm.propertyGridPBS, 1, wx.EXPAND ) panelPBS.SetSizerAndFit( sizerGridPBS ) RunForm.propertyGridPBS.Append( wx_propgrid.PropertyCategory( "PBS Settings" ) ) RunForm.propertyGridPBS.Append( wx_propgrid.IntProperty( "Number of nodes", "numNodes", RunForm.run.availableModules.PBSResourceManager.numNodes ) ) RunForm.propertyGridPBS.Append( wx_propgrid.IntProperty( "Processors per node (ppn)", "processorsPerNode", RunForm.run.availableModules.PBSResourceManager.processorsPerNode ) ) RunForm.propertyGridPBS.Append( wx_propgrid.StringProperty( "Walltime", "walltime", RunForm.run.availableModules.PBSResourceManager.walltime ) ) RunForm.propertyGridPBS.Append( wx_propgrid.PropertyCategory( "Additional Commands" ) ) RunForm.propertyGridPBS.Append( wx_propgrid.LongStringProperty( "Additional pre-execution commands", "additionalPreExecutionCommands", RunForm.run.availableModules.PBSResourceManager.additionalPreExecutionCommands ) ) RunForm.propertyGridPBS.Append( wx_propgrid.LongStringProperty( "Additional post-execution commands", "additionalPostExecutionCommands", RunForm.run.availableModules.PBSResourceManager.additionalPostExecutionCommands ) )
def __init__( self, parent ): wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"KBoot GUI", pos = wx.DefaultPosition, size = wx.Size( 724,584 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL ) self.SetSizeHintsSz( wx.Size( 724,584 ), wx.Size( -1,-1 ) ) self.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_MENU ) ) self.m_menubar = wx.MenuBar( 0 ) self.m_mFile = wx.Menu() self.m_mOpen = wx.MenuItem( self.m_mFile, wx.ID_ANY, u"&Open"+ u"\t" + u"Ctrl+O", wx.EmptyString, wx.ITEM_NORMAL ) self.m_mFile.AppendItem( self.m_mOpen ) self.m_mSave = wx.MenuItem( self.m_mFile, wx.ID_ANY, u"&Save"+ u"\t" + u"Ctrl+S", wx.EmptyString, wx.ITEM_NORMAL ) self.m_mFile.AppendItem( self.m_mSave ) self.m_mSave.Enable( False ) self.m_mFile.AppendSeparator() self.m_mExit = wx.MenuItem( self.m_mFile, wx.ID_ANY, u"E&xit"+ u"\t" + u"Ctrl+X", wx.EmptyString, wx.ITEM_NORMAL ) self.m_mFile.AppendItem( self.m_mExit ) self.m_menubar.Append( self.m_mFile, u"&File" ) self.m_mInterface = wx.Menu() self.m_mUsbHid = wx.MenuItem( self.m_mInterface, wx.ID_ANY, u"&USB-HID", wx.EmptyString, wx.ITEM_RADIO ) self.m_mInterface.AppendItem( self.m_mUsbHid ) self.m_mUart = wx.MenuItem( self.m_mInterface, wx.ID_ANY, u"&RS232", wx.EmptyString, wx.ITEM_RADIO ) self.m_mInterface.AppendItem( self.m_mUart ) self.m_menubar.Append( self.m_mInterface, u"&Interface" ) self.m_mTools = wx.Menu() self.m_mSettings = wx.MenuItem( self.m_mTools, wx.ID_ANY, u"S&ettings"+ u"\t" + u"Ctrl+E", wx.EmptyString, wx.ITEM_NORMAL ) self.m_mTools.AppendItem( self.m_mSettings ) self.m_mSettings.Enable( False ) self.m_menubar.Append( self.m_mTools, u"&Tools" ) self.m_mHelp = wx.Menu() self.m_mAbout = wx.MenuItem( self.m_mHelp, wx.ID_ANY, u"&About"+ u"\t" + u"F1", wx.EmptyString, wx.ITEM_NORMAL ) self.m_mHelp.AppendItem( self.m_mAbout ) self.m_menubar.Append( self.m_mHelp, u"&Help" ) self.SetMenuBar( self.m_menubar ) m_sizer = wx.BoxSizer( wx.VERTICAL ) fgSizer = wx.FlexGridSizer( 6, 0, 0, 0 ) fgSizer.AddGrowableCol( 0 ) fgSizer.AddGrowableRow( 2 ) fgSizer.SetFlexibleDirection( wx.BOTH ) fgSizer.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_ALL ) fgSizer2 = wx.FlexGridSizer( 0, 5, 0, 0 ) fgSizer2.AddGrowableCol( 1 ) fgSizer2.SetFlexibleDirection( wx.BOTH ) fgSizer2.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_stxDevice = wx.StaticText( self, wx.ID_ANY, u"USB Device:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_stxDevice.Wrap( -1 ) fgSizer2.Add( self.m_stxDevice, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_RIGHT|wx.LEFT|wx.RIGHT, 5 ) m_chDeviceChoices = [] self.m_chDevice = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_chDeviceChoices, 0 ) self.m_chDevice.SetSelection( 0 ) self.m_chDevice.SetFont( wx.Font( wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, False, wx.EmptyString ) ) fgSizer2.Add( self.m_chDevice, 1, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 5 ) bSizer6 = wx.BoxSizer( wx.HORIZONTAL ) self.m_stBaudrate = wx.StaticText( self, wx.ID_ANY, u"BaudRate:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_stBaudrate.Wrap( -1 ) self.m_stBaudrate.Hide() bSizer6.Add( self.m_stBaudrate, 0, wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.BOTTOM|wx.LEFT, 5 ) m_chBaudrateChoices = [] self.m_chBaudrate = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.Size( 100,-1 ), m_chBaudrateChoices, 0 ) self.m_chBaudrate.SetSelection( 0 ) self.m_chBaudrate.Hide() bSizer6.Add( self.m_chBaudrate, 0, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) fgSizer2.Add( bSizer6, 1, wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 ) self.m_bRefresh = wx.Button( self, wx.ID_ANY, u"Refresh", wx.DefaultPosition, wx.Size( 70,-1 ), 0 ) fgSizer2.Add( self.m_bRefresh, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.SHAPED, 2 ) self.m_bConnect = wx.Button( self, wx.ID_ANY, u"Connect", wx.DefaultPosition, wx.Size( 90,-1 ), 0 ) self.m_bConnect.Enable( False ) fgSizer2.Add( self.m_bConnect, 0, wx.ALL|wx.SHAPED|wx.ALIGN_CENTER_VERTICAL, 2 ) fgSizer.Add( fgSizer2, 1, wx.EXPAND|wx.TOP|wx.RIGHT|wx.LEFT, 5 ) self.m_staticline1 = wx.StaticLine( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) fgSizer.Add( self.m_staticline1, 0, wx.EXPAND|wx.ALL, 5 ) self.m_notebook1 = wx.Notebook( self, wx.ID_ANY, wx.DefaultPosition, wx.Size( -1,370 ), wx.NB_FIXEDWIDTH|wx.NB_TOP ) self.m_panel1 = wx.Panel( self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_panel1.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_MENU ) ) self.m_panel1.SetToolTipString( u"KBOOT Properties of Connected MCU" ) bSizer3 = wx.BoxSizer( wx.VERTICAL ) self.m_dvlcMcuInfo = wx.dataview.DataViewListCtrl( self.m_panel1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.dataview.DV_ROW_LINES|wx.dataview.DV_VERT_RULES ) bSizer3.Add( self.m_dvlcMcuInfo, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel1.SetSizer( bSizer3 ) self.m_panel1.Layout() bSizer3.Fit( self.m_panel1 ) self.m_notebook1.AddPage( self.m_panel1, u"MCU Info", True ) self.m_panel2 = wx.Panel( self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_panel2.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_MENU ) ) fgSizer4 = wx.FlexGridSizer( 2, 0, 0, 0 ) fgSizer4.AddGrowableCol( 0 ) fgSizer4.AddGrowableRow( 1 ) fgSizer4.SetFlexibleDirection( wx.BOTH ) fgSizer4.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) bSizer61 = wx.BoxSizer( wx.HORIZONTAL ) self.m_stxtDataInfo = wx.StaticText( self.m_panel2, wx.ID_ANY, u"Source:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_stxtDataInfo.Wrap( -1 ) bSizer61.Add( self.m_stxtDataInfo, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) self.m_txtcDataInfo = wx.TextCtrl( self.m_panel2, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_READONLY ) self.m_txtcDataInfo.SetBackgroundColour( wx.Colour( 240, 240, 240 ) ) bSizer61.Add( self.m_txtcDataInfo, 1, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) self.m_bpOpen = wx.BitmapButton( self.m_panel2, wx.ID_ANY, wx.ArtProvider.GetBitmap( wx.ART_FILE_OPEN, ), wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW ) self.m_bpOpen.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) ) self.m_bpOpen.SetToolTipString( u"Load Data From File" ) bSizer61.Add( self.m_bpOpen, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) self.m_bpSave = wx.BitmapButton( self.m_panel2, wx.ID_ANY, wx.ArtProvider.GetBitmap( wx.ART_FILE_SAVE, ), wx.DefaultPosition, wx.DefaultSize, wx.BU_AUTODRAW ) self.m_bpSave.Enable( False ) self.m_bpSave.SetToolTipString( u"Save Data Into File" ) bSizer61.Add( self.m_bpSave, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) fgSizer4.Add( bSizer61, 1, wx.EXPAND|wx.TOP|wx.RIGHT|wx.LEFT, 2 ) self.m_dvlcDataBuff = wx.dataview.DataViewListCtrl( self.m_panel2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_dvlcDataBuff.SetFont( wx.Font( wx.NORMAL_FONT.GetPointSize(), 70, 90, 90, False, wx.EmptyString ) ) fgSizer4.Add( self.m_dvlcDataBuff, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel2.SetSizer( fgSizer4 ) self.m_panel2.Layout() fgSizer4.Fit( self.m_panel2 ) self.m_notebook1.AddPage( self.m_panel2, u"Data Buffer", False ) self.m_panel3 = wx.Panel( self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_panel3.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_MENU ) ) fgSizer6 = wx.FlexGridSizer( 0, 0, 0, 0 ) fgSizer6.AddGrowableCol( 0 ) fgSizer6.AddGrowableRow( 0 ) fgSizer6.SetFlexibleDirection( wx.BOTH ) fgSizer6.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_pGridFCA = pg.PropertyGrid(self.m_panel3, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_BOLD_MODIFIED|wx.propgrid.PG_DEFAULT_STYLE|wx.propgrid.PG_SPLITTER_AUTO_CENTER) fgSizer6.Add( self.m_pGridFCA, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 ) self.m_panel3.SetSizer( fgSizer6 ) self.m_panel3.Layout() fgSizer6.Fit( self.m_panel3 ) self.m_notebook1.AddPage( self.m_panel3, u"FCA Editor", False ) self.m_panel4 = wx.Panel( self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_panel4.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_MENU ) ) fgSizer61 = wx.FlexGridSizer( 0, 0, 0, 0 ) fgSizer61.AddGrowableCol( 0 ) fgSizer61.AddGrowableRow( 0 ) fgSizer61.SetFlexibleDirection( wx.BOTH ) fgSizer61.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_pGridBCA = pg.PropertyGrid(self.m_panel4, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_BOLD_MODIFIED|wx.propgrid.PG_DEFAULT_STYLE|wx.propgrid.PG_SPLITTER_AUTO_CENTER) fgSizer61.Add( self.m_pGridBCA, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL, 5 ) self.m_panel4.SetSizer( fgSizer61 ) self.m_panel4.Layout() fgSizer61.Fit( self.m_panel4 ) self.m_notebook1.AddPage( self.m_panel4, u"BCA Editor", False ) self.m_panel5 = wx.Panel( self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_panel5.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_MENU ) ) bSizer51 = wx.BoxSizer( wx.VERTICAL ) self.m_pGridOptions = pg.PropertyGrid(self.m_panel5, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_BOLD_MODIFIED|wx.propgrid.PG_DEFAULT_STYLE|wx.propgrid.PG_SPLITTER_AUTO_CENTER|wx.SUNKEN_BORDER) self.m_pGridOptions.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) ) bSizer51.Add( self.m_pGridOptions, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel5.SetSizer( bSizer51 ) self.m_panel5.Layout() bSizer51.Fit( self.m_panel5 ) self.m_notebook1.AddPage( self.m_panel5, u"CMD Options", False ) self.m_panel6 = wx.Panel( self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_panel6.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_MENU ) ) fgSizer3 = wx.FlexGridSizer( 2, 0, 0, 0 ) fgSizer3.AddGrowableCol( 0 ) fgSizer3.AddGrowableRow( 0 ) fgSizer3.SetFlexibleDirection( wx.BOTH ) fgSizer3.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_tcLogger = wx.TextCtrl( self.m_panel6, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_DONTWRAP|wx.TE_MULTILINE|wx.TE_NOHIDESEL|wx.TE_READONLY ) self.m_tcLogger.SetFont( wx.Font( wx.NORMAL_FONT.GetPointSize(), 70, 90, 90, False, wx.EmptyString ) ) self.m_tcLogger.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) ) self.m_tcLogger.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOW ) ) fgSizer3.Add( self.m_tcLogger, 1, wx.EXPAND|wx.TOP|wx.RIGHT|wx.LEFT, 5 ) bSizer5 = wx.BoxSizer( wx.HORIZONTAL ) self.m_staticText3 = wx.StaticText( self.m_panel6, wx.ID_ANY, u"Level:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText3.Wrap( -1 ) bSizer5.Add( self.m_staticText3, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) m_chLogLevelChoices = [ u"Debug", u"Info", u"Error" ] self.m_chLogLevel = wx.Choice( self.m_panel6, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_chLogLevelChoices, 0 ) self.m_chLogLevel.SetSelection( 0 ) self.m_chLogLevel.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_WINDOWTEXT ) ) bSizer5.Add( self.m_chLogLevel, 0, wx.ALIGN_CENTER_VERTICAL|wx.RIGHT|wx.LEFT, 5 ) bSizer5.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 ) self.m_bClearLog = wx.Button( self.m_panel6, wx.ID_ANY, u"Clear", wx.DefaultPosition, wx.Size( 70,-1 ), 0 ) bSizer5.Add( self.m_bClearLog, 0, wx.ALL, 5 ) self.m_bSaveLog = wx.Button( self.m_panel6, wx.ID_ANY, u"Save", wx.DefaultPosition, wx.Size( 70,-1 ), 0 ) bSizer5.Add( self.m_bSaveLog, 0, wx.ALL, 5 ) fgSizer3.Add( bSizer5, 1, wx.EXPAND|wx.RIGHT|wx.LEFT|wx.ALIGN_CENTER_VERTICAL, 5 ) self.m_panel6.SetSizer( fgSizer3 ) self.m_panel6.Layout() fgSizer3.Fit( self.m_panel6 ) self.m_notebook1.AddPage( self.m_panel6, u"Logger", False ) fgSizer.Add( self.m_notebook1, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL|wx.EXPAND|wx.ALL, 5 ) fgSizer5 = wx.FlexGridSizer( 0, 3, 0, 0 ) fgSizer5.AddGrowableCol( 1 ) fgSizer5.AddGrowableRow( 0 ) fgSizer5.SetFlexibleDirection( wx.BOTH ) fgSizer5.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_tcTime = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 100,24 ), wx.TE_CENTRE|wx.TE_READONLY ) self.m_tcTime.SetFont( wx.Font( wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, False, wx.EmptyString ) ) self.m_tcTime.SetForegroundColour( wx.Colour( 0, 0, 0 ) ) self.m_tcTime.SetBackgroundColour( wx.Colour( 224, 224, 224 ) ) fgSizer5.Add( self.m_tcTime, 1, wx.ALIGN_CENTER_VERTICAL|wx.EXPAND|wx.RIGHT|wx.LEFT, 6 ) self.m_gProgBar = wx.Gauge( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL|wx.GA_SMOOTH ) self.m_gProgBar.SetValue( 0 ) fgSizer5.Add( self.m_gProgBar, 1, wx.ALIGN_CENTER_VERTICAL|wx.BOTTOM|wx.RIGHT|wx.LEFT|wx.EXPAND, 1 ) self.m_tcState = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size( 100,24 ), wx.TE_CENTRE|wx.TE_READONLY ) self.m_tcState.SetFont( wx.Font( wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, False, wx.EmptyString ) ) self.m_tcState.SetForegroundColour( wx.Colour( 0, 0, 0 ) ) self.m_tcState.SetBackgroundColour( wx.Colour( 224, 224, 224 ) ) fgSizer5.Add( self.m_tcState, 1, wx.ALIGN_CENTER|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL|wx.EXPAND|wx.RIGHT|wx.LEFT, 6 ) fgSizer.Add( fgSizer5, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL|wx.EXPAND|wx.ALL, 5 ) gSizer1 = wx.GridSizer( 0, 5, 0, 0 ) gSizer1.SetMinSize( wx.Size( -1,50 ) ) self.m_bReset = wx.Button( self, wx.ID_ANY, u"Reset", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_bReset.SetFont( wx.Font( wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, False, wx.EmptyString ) ) self.m_bReset.Enable( False ) gSizer1.Add( self.m_bReset, 1, wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL|wx.ALL|wx.EXPAND, 5 ) self.m_bUnlock = wx.Button( self, wx.ID_ANY, u"Unlock", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_bUnlock.SetFont( wx.Font( wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, False, wx.EmptyString ) ) self.m_bUnlock.Enable( False ) gSizer1.Add( self.m_bUnlock, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) self.m_bErase = wx.Button( self, wx.ID_ANY, u"Erase", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_bErase.SetFont( wx.Font( wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, False, wx.EmptyString ) ) self.m_bErase.Enable( False ) gSizer1.Add( self.m_bErase, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) self.m_bWrite = wx.Button( self, wx.ID_ANY, u"Write", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_bWrite.SetFont( wx.Font( wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, False, wx.EmptyString ) ) self.m_bWrite.Enable( False ) gSizer1.Add( self.m_bWrite, 1, wx.ALL|wx.EXPAND|wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) self.m_bRead = wx.Button( self, wx.ID_ANY, u"Read", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_bRead.SetFont( wx.Font( wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, False, wx.EmptyString ) ) self.m_bRead.Enable( False ) gSizer1.Add( self.m_bRead, 1, wx.EXPAND|wx.ALIGN_CENTER_HORIZONTAL|wx.ALIGN_CENTER_VERTICAL|wx.ALL, 5 ) fgSizer.Add( gSizer1, 1, wx.EXPAND|wx.FIXED_MINSIZE|wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_HORIZONTAL, 5 ) fgSizer.AddSpacer( ( 0, 10), 1, wx.EXPAND, 5 ) m_sizer.Add( fgSizer, 1, wx.EXPAND|wx.FIXED_MINSIZE, 5 ) self.SetSizer( m_sizer ) self.Layout() self.Centre( wx.BOTH ) # Connect Events self.Bind( wx.EVT_MENU, self.OnOpen, id = self.m_mOpen.GetId() ) self.Bind( wx.EVT_MENU, self.OnSave, id = self.m_mSave.GetId() ) self.Bind( wx.EVT_MENU, self.OnExit, id = self.m_mExit.GetId() ) self.Bind( wx.EVT_MENU, self.OnSelUsbHid, id = self.m_mUsbHid.GetId() ) self.Bind( wx.EVT_MENU, self.OnSelUart, id = self.m_mUart.GetId() ) self.Bind( wx.EVT_MENU, self.OnSettings, id = self.m_mSettings.GetId() ) self.Bind( wx.EVT_MENU, self.OnAbout, id = self.m_mAbout.GetId() ) self.m_bRefresh.Bind( wx.EVT_BUTTON, self.OnRefresh ) self.m_bConnect.Bind( wx.EVT_BUTTON, self.OnConnect ) self.m_bpOpen.Bind( wx.EVT_BUTTON, self.OnOpen ) self.m_bpSave.Bind( wx.EVT_BUTTON, self.OnSave ) self.m_tcLogger.Bind( wx.EVT_LEAVE_WINDOW, self.OnLeaveLogger ) self.m_chLogLevel.Bind( wx.EVT_CHOICE, self.OnChoiceLogLevel ) self.m_bClearLog.Bind( wx.EVT_BUTTON, self.OnClearLog ) self.m_bSaveLog.Bind( wx.EVT_BUTTON, self.OnSaveLog ) self.m_bReset.Bind( wx.EVT_BUTTON, self.OnReset ) self.m_bUnlock.Bind( wx.EVT_BUTTON, self.OnUnlock ) self.m_bErase.Bind( wx.EVT_BUTTON, self.OnErase ) self.m_bWrite.Bind( wx.EVT_BUTTON, self.OnWrite ) self.m_bRead.Bind( wx.EVT_BUTTON, self.OnRead )
def image_panel(self): self.imagepanel = wx.ScrolledWindow(self.main_container, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL | wx.VSCROLL) self.imagepanel.SetScrollRate(5, 5) image_panel_sizer = wx.BoxSizer(wx.VERTICAL) self.image_panel_container = wx.SplitterWindow(self.imagepanel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SP_LIVE_UPDATE) self.image_container = wx.ScrolledWindow( self.image_panel_container, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL | wx.VSCROLL | wx.BORDER_SUNKEN) self.image_container.SetScrollRate(5, 5) self.image_sizer = wx.BoxSizer(wx.VERTICAL) self.note = wx.aui.AuiNotebook( self.image_container, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, (wx.aui.AUI_NB_CLOSE_ON_ALL_TABS | wx.aui.AUI_NB_SCROLL_BUTTONS | wx.aui.AUI_NB_TAB_MOVE | wx.aui.AUI_NB_TAB_SPLIT | wx.aui.AUI_NB_TOP)) self.image_sizer.Add(self.note, 1, wx.EXPAND) self.image_container.SetSizer(self.image_sizer) self.image_container.Layout() self.image_sizer.Fit(self.image_container) self.image_info_panel = wx.ScrolledWindow(self.image_panel_container, wx.ID_ANY, style=wx.HSCROLL | wx.VSCROLL) self.image_info_panel.SetScrollRate(5, 5) self.image_info_panel_sizer = wx.BoxSizer(wx.VERTICAL) self.palette_sizer = wx.StaticBoxSizer( wx.StaticBox(self.image_info_panel, wx.ID_ANY, 'Palette'), wx.VERTICAL) self.palette_grid = pg.PropertyGrid( self.palette_sizer.GetStaticBox(), wx.ID_ANY, style=wx.propgrid.PG_LIMITED_EDITING | wx.propgrid.PG_HIDE_MARGIN) font = wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Noto Sans") self.palette_grid.SetFont(font) self.palette_grid.Append(pg.PropertyCategory('amount | color')) self.palette_sizer.Add(self.palette_grid, 1, wx.EXPAND, 5) self.image_info_panel_sizer.Add(self.palette_sizer, 1, wx.EXPAND, 5) self.image_info_panel.SetSizer(self.image_info_panel_sizer) self.image_info_panel.Layout() self.image_info_panel_sizer.Fit(self.image_info_panel) self.image_panel_container.SplitVertically(self.image_container, self.image_info_panel, 740) image_panel_sizer.Add(self.image_panel_container, 1, wx.EXPAND, 5) self.imagepanel.SetSizer(image_panel_sizer) self.imagepanel.Layout() image_panel_sizer.Fit(self.imagepanel)
def __init__(self, parent, wparent, cb=None): wx.Frame.__init__(self, wparent, wx.ID_ANY, size=(500, 500)) ico = wx.Icon(os.path.join(cmdFolder, "images", "propsico.png"), wx.BITMAP_TYPE_PNG) self.SetIcon(ico) self.Bind(wx.EVT_CLOSE, self.onClose) self.parent = parent self.callback = cb self.fileName = None self.sdTargetfn = None self.nextruders = parent.settings.nextruders self.printStatus = PrintState.idle self.setTitle() pgFont = wx.Font(10, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD) self.pg = pg = wxpg.PropertyGrid(self, style=wxpg.PG_PROP_READONLY | wxpg.PG_TOOLBAR) pg.SetFont(pgFont) pg.SetCaptionBackgroundColour(wx.Colour(215, 255, 215)) pg.SetCaptionTextColour(wx.Colour(0, 0, 0)) pg.SetMarginColour(wx.Colour(215, 255, 215)) pg.SetCellBackgroundColour(wx.Colour(255, 255, 191)) pg.SetCellTextColour(wx.Colour(0, 0, 0)) pg.SetCellDisabledTextColour(wx.Colour(0, 0, 0)) pg.SetEmptySpaceColour(wx.Colour(215, 255, 215)) pg.SetLineColour(wx.Colour(0, 0, 0)) self.properties = {} lines = 0 for cat in catOrder: pg.Append(wxpg.PropertyCategory(CategoryEnum.label[cat])) lines += 1 for k in propertyMap[cat]: if k == PropertyEnum.filamentUsed: for tx in range(self.nextruders): pgp = wxpg.StringProperty( PropertyEnum.label[toolMap[tx]], value="") pg.Append(pgp) lines += 1 self.properties[toolMap[tx]] = pgp pg.DisableProperty(pgp) else: pgp = wxpg.StringProperty(PropertyEnum.label[k], value="") pg.Append(pgp) lines += 1 self.properties[k] = pgp pg.DisableProperty(pgp) n = pg.GetRowHeight() dlgVsizer = wx.BoxSizer(wx.VERTICAL) dlgHsizer = wx.BoxSizer(wx.HORIZONTAL) dlgHsizer.AddSpacer(10) dlgHsizer.Add(pg, 1, wx.EXPAND) dlgHsizer.AddSpacer(10) dlgVsizer.AddSpacer(10) dlgVsizer.Add(dlgHsizer, 1, wx.EXPAND) dlgVsizer.AddSpacer(10) self.SetSizer(dlgVsizer) self.SetClientSize((600, n * lines + 24)) pg.SetSplitterLeft()
def __init__(self, *args, **kargs): page = kargs.pop('page', None) parent = kargs.pop('parent', None) title = kargs.pop('title', 'HDF export') path = kargs.pop('path', os.path.join(os.getcwd(), 'data.hdf')) dataset = kargs.pop('dataset', None) metadata = kargs.pop('metadata', OrderedDict()) export_flag = kargs.pop('export_flag', {}) if dataset is None: if page is None: return dataset, metadata, export_flag = build_data( page, verbose=False, metadata=metadata, export_flag=export_flag) style = (wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.RESIZE_BORDER) if parent is not None: style = style | wx.FRAME_FLOAT_ON_PARENT wx.Frame.__init__(self, *args, style=style, title=title, parent=parent, size=(400, 500)) self.SetSizer(wx.BoxSizer(wx.VERTICAL)) hsizer = wx.BoxSizer(wx.HORIZONTAL) self.GetSizer().Add(hsizer, 1, wx.EXPAND, 0) panel = wx.Panel(self) hsizer.Add(panel, 1, wx.EXPAND) panel.SetSizer(wx.BoxSizer(wx.VERTICAL)) sizer = panel.GetSizer() sizer_h = wx.BoxSizer(wx.HORIZONTAL) wildcard = "HDF(hdf)|*.hdf|Any|*.*" self.filepicker = wx.FilePickerCtrl(panel, style=wx.FLP_SAVE | wx.FLP_USE_TEXTCTRL, path=path, wildcard=wildcard) self.sp = wx.SplitterWindow(panel, wx.ID_ANY, style=wx.SP_NOBORDER | wx.SP_LIVE_UPDATE | wx.SP_3DSASH) self.dataviewCtrl = dv.DataViewCtrl(self.sp, style=(wx.BORDER_THEME | dv.DV_ROW_LINES | dv.DV_VERT_RULES)) self.model = HDFDataModel(export_flag=export_flag, dataset=dataset, metadata=metadata) self.dataviewCtrl.AssociateModel(self.model) self.tr = tr = dv.DataViewTextRenderer() c0 = dv.DataViewColumn( "name", # title tr, # renderer 0, # data model column width=200) self.dataviewCtrl.AppendColumn(c0) # self.dataviewCtrl.AppendTextColumn('name', 0, # width = 150, # mode=dv.DATAVIEW_CELL_ACTIVATABLE) c1 = self.dataviewCtrl.AppendToggleColumn( 'export', 1, width=70, mode=dv.DATAVIEW_CELL_ACTIVATABLE) c2 = self.dataviewCtrl.AppendTextColumn( 'value', 2, width=100, mode=dv.DATAVIEW_CELL_ACTIVATABLE) c3 = self.dataviewCtrl.AppendTextColumn( 'shape', 3, mode=dv.DATAVIEW_CELL_ACTIVATABLE) #c4 = self.dataviewCtrl.AppendTextColumn('metadata', 4, # mode=dv.DATAVIEW_CELL_ACTIVATABLE) for c in self.dataviewCtrl.Columns: c.Sortable = True c.Reorderable = True c1.Alignment = wx.ALIGN_CENTER #from ifigure.widgets.var_viewerg2 import _PropertyGrid self.grid = pg.PropertyGrid(self.sp) #self.btn_load = wx.Button(self, label = 'Load') self.choices = [ 'Options...', 'No Property', 'Minimum properties', 'All properties' ] self.cb = wx.ComboBox(panel, wx.ID_ANY, style=wx.TE_PROCESS_ENTER | wx.CB_READONLY, choices=self.choices) self.cb.SetValue(self.choices[0]) self.btn_export = wx.Button(panel, label='Export...') sizer.Add(self.filepicker, 0, wx.EXPAND | wx.ALL, 1) sizer.Add(self.sp, 1, wx.EXPAND | wx.ALL, 5) sizer.Add(sizer_h, 0, wx.EXPAND | wx.ALL, 5) #sizer_h.Add(self.btn_load, 0, wx.EXPAND|wx.ALL, 1) sizer_h.Add(self.cb, 0, wx.EXPAND | wx.ALL, 1) sizer_h.AddStretchSpacer(prop=1) sizer_h.Add(self.btn_export, 0, wx.EXPAND | wx.ALL, 1) self.Layout() self.Show() self.sp.SetMinimumPaneSize(30) self.sp.SplitHorizontally(self.dataviewCtrl, self.grid) self.sp.SetSashPosition(300) # self.Bind(dv.EVT_DATAVIEW_ITEM_VALUE_CHANGED, # self.onDataChanged, self.dataviewCtrl) self.Bind(dv.EVT_DATAVIEW_SELECTION_CHANGED, self.onSelChanged, self.dataviewCtrl) # self.Bind(dv.EVT_DATAVIEW_ITEM_COLLAPSING, # self.onCollapsing, self.dataviewCtrl) self.grid.Bind(pg.EVT_PG_CHANGED, self.onPGChanged, self.grid) self.Bind(wx.EVT_BUTTON, self.onExport, self.btn_export) self.Bind(wx.EVT_COMBOBOX, self.onCBHit, self.cb) self.Bind(wx.EVT_CLOSE, self.onWindowClose) self.page = page wx.GetApp().TopWindow.hdf_export_window = self
def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title=_(u"Viewing transfor datasource results"), pos=wx.DefaultPosition, size=wx.Size(856, 619), style=wx.DEFAULT_DIALOG_STYLE) self.SetSizeHints(wx.DefaultSize, wx.DefaultSize) bSizer1 = wx.BoxSizer(wx.VERTICAL) self.panel_splitter = wx.SplitterWindow(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SP_3D) self.panel_splitter.Bind(wx.EVT_IDLE, self.panel_splitterOnIdle) self.query_panel = wx.Panel(self.panel_splitter, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer3 = wx.BoxSizer(wx.HORIZONTAL) self.var_panel = wx.Panel(self.query_panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer5 = wx.BoxSizer(wx.VERTICAL) self.m_staticText1 = wx.StaticText(self.var_panel, wx.ID_ANY, _(u"Variables:"), wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText1.Wrap(-1) bSizer5.Add(self.m_staticText1, 0, wx.ALL, 5) self.var_propertyGrid = pg.PropertyGrid(self.var_panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_DEFAULT_STYLE) bSizer5.Add(self.var_propertyGrid, 1, wx.ALL | wx.EXPAND, 5) self.var_panel.SetSizer(bSizer5) self.var_panel.Layout() bSizer5.Fit(self.var_panel) bSizer3.Add(self.var_panel, 1, wx.EXPAND | wx.ALL, 5) self.query_panel.SetSizer(bSizer3) self.query_panel.Layout() bSizer3.Fit(self.query_panel) self.table_panel = wx.Panel(self.panel_splitter, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer4 = wx.BoxSizer(wx.VERTICAL) self.ctrl_toolBar = wx.ToolBar(self.table_panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TB_HORIZONTAL) self.collapse_tool = self.ctrl_toolBar.AddTool( wx.ID_ANY, _(u"Свернуть панель"), wx.ArtProvider.GetBitmap(wx.ART_GO_UP, wx.ART_TOOLBAR), wx.NullBitmap, wx.ITEM_NORMAL, _(u"Collapse panel"), _(u"Collapse panel"), None) self.expand_tool = self.ctrl_toolBar.AddTool( wx.ID_ANY, _(u"Развернуть панель"), wx.ArtProvider.GetBitmap(wx.ART_GO_DOWN, wx.ART_TOOLBAR), wx.NullBitmap, wx.ITEM_NORMAL, _(u"Expand panel"), _(u"Expand panel"), None) self.ctrl_toolBar.AddSeparator() self.refresh_tool = self.ctrl_toolBar.AddTool( wx.ID_ANY, _(u"Обновить результаты запроса"), wx.ArtProvider.GetBitmap(u"gtk-refresh", wx.ART_TOOLBAR), wx.NullBitmap, wx.ITEM_NORMAL, _(u"Refresh"), _(u"Refresh"), None) self.ctrl_toolBar.AddSeparator() self.m_staticText3 = wx.StaticText( self.ctrl_toolBar, wx.ID_ANY, _(u"Limiting the number of records:"), wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText3.Wrap(-1) self.ctrl_toolBar.AddControl(self.m_staticText3) self.limit_spinCtrl = wx.SpinCtrl(self.ctrl_toolBar, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0, 100, 0) self.ctrl_toolBar.AddControl(self.limit_spinCtrl) self.ctrl_toolBar.Realize() bSizer4.Add(self.ctrl_toolBar, 0, wx.EXPAND, 5) self.records_listCtrl = wx.ListCtrl(self.table_panel, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_REPORT) bSizer4.Add(self.records_listCtrl, 1, wx.ALL | wx.EXPAND, 5) bSizer7 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText4 = wx.StaticText(self.table_panel, wx.ID_ANY, _(u"Total records:"), wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText4.Wrap(-1) bSizer7.Add(self.m_staticText4, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.count_textCtrl = wx.TextCtrl(self.table_panel, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_READONLY) self.count_textCtrl.SetFont( wx.Font(11, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Sans")) bSizer7.Add(self.count_textCtrl, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) bSizer4.Add(bSizer7, 0, wx.EXPAND, 5) self.table_panel.SetSizer(bSizer4) self.table_panel.Layout() bSizer4.Fit(self.table_panel) self.panel_splitter.SplitHorizontally(self.query_panel, self.table_panel, 0) bSizer1.Add(self.panel_splitter, 1, wx.EXPAND, 5) bSizer2 = wx.BoxSizer(wx.HORIZONTAL) self.ok_button = wx.Button(self, wx.ID_ANY, _(u"OK"), wx.DefaultPosition, wx.DefaultSize, 0) self.ok_button.SetDefault() bSizer2.Add(self.ok_button, 0, wx.ALL, 5) bSizer1.Add(bSizer2, 0, wx.ALIGN_RIGHT, 5) self.SetSizer(bSizer1) self.Layout() self.Centre(wx.BOTH) # Connect Events self.Bind(wx.EVT_TOOL, self.onCollapseToolClicked, id=self.collapse_tool.GetId()) self.Bind(wx.EVT_TOOL, self.onExpandToolClicked, id=self.expand_tool.GetId()) self.Bind(wx.EVT_TOOL, self.onRefreshToolClicked, id=self.refresh_tool.GetId()) self.ok_button.Bind(wx.EVT_BUTTON, self.onOkButtonClick)
def __init__( self, parent ): wx.Dialog.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 300,919 ), style = wx.DEFAULT_DIALOG_STYLE ) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) bSizer1 = wx.BoxSizer( wx.VERTICAL ) bSizer2 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"截面参数定义", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText1.Wrap( -1 ) bSizer2.Add( self.m_staticText1, 0, wx.ALL, 5 ) bSizer4 = wx.BoxSizer( wx.HORIZONTAL ) self.m_staticText3 = wx.StaticText( self, wx.ID_ANY, u"截面类型:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText3.Wrap( -1 ) bSizer4.Add( self.m_staticText3, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) m_choice_section_typeChoices = [ u"直角钢", u"工字钢", u"槽钢", u"T型钢", u"帽型钢", u"J型钢" ] self.m_choice_section_type = wx.Choice( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_choice_section_typeChoices, 0 ) self.m_choice_section_type.SetSelection( 3 ) bSizer4.Add( self.m_choice_section_type, 0, wx.ALL, 5 ) bSizer2.Add( bSizer4, 0, wx.EXPAND, 5 ) bSizer6 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText4 = wx.StaticText( self, wx.ID_ANY, u"截面参数:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText4.Wrap( -1 ) bSizer6.Add( self.m_staticText4, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) self.m_grid_params_defs = wx.grid.Grid( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 ) # Grid self.m_grid_params_defs.CreateGrid( 7, 2 ) self.m_grid_params_defs.EnableEditing( True ) self.m_grid_params_defs.EnableGridLines( True ) self.m_grid_params_defs.EnableDragGridSize( False ) self.m_grid_params_defs.SetMargins( 0, 0 ) # Columns self.m_grid_params_defs.SetColSize( 0, 200 ) self.m_grid_params_defs.EnableDragColMove( False ) self.m_grid_params_defs.EnableDragColSize( True ) self.m_grid_params_defs.SetColLabelSize( 30 ) self.m_grid_params_defs.SetColLabelValue( 0, u"参数定义" ) self.m_grid_params_defs.SetColLabelValue( 1, u"参数值" ) self.m_grid_params_defs.SetColLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE ) # Rows self.m_grid_params_defs.EnableDragRowSize( True ) self.m_grid_params_defs.SetRowLabelSize( 1 ) self.m_grid_params_defs.SetRowLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE ) # Label Appearance # Cell Defaults self.m_grid_params_defs.SetDefaultCellAlignment( wx.ALIGN_LEFT, wx.ALIGN_TOP ) bSizer6.Add( self.m_grid_params_defs, 0, wx.ALL, 5 ) self.m_btn_calculation = wx.Button( self, wx.ID_ANY, u"计算", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer6.Add( self.m_btn_calculation, 0, wx.ALL, 5 ) bSizer2.Add( bSizer6, 0, wx.EXPAND, 5 ) self.m_panel_canvas = wx.Panel( self, wx.ID_ANY, wx.DefaultPosition, wx.Size( 300,300 ), wx.TAB_TRAVERSAL ) self.m_panel_canvas.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_ACTIVECAPTION ) ) bSizer2.Add( self.m_panel_canvas, 0, wx.EXPAND |wx.ALL, 5 ) self.m_propertyGrid_result = pg.PropertyGrid(self, wx.ID_ANY, wx.DefaultPosition, wx.Size( 300,300 ), wx.propgrid.PG_DEFAULT_STYLE) self.m_propertyGridItem1 = self.m_propertyGrid_result.Append( pg.PropertyCategory( u"结果数据", u"结果数据" ) ) self.m_propertyGridItem2 = self.m_propertyGrid_result.Append( pg.StringProperty( u"面积 =", u"面积 =" ) ) self.m_propertyGridItem3 = self.m_propertyGrid_result.Append( pg.StringProperty( u"Sx =", u"Sx =" ) ) self.m_propertyGridItem42 = self.m_propertyGrid_result.Append( pg.StringProperty( u"Sy =", u"Sy =" ) ) self.m_propertyGridItem4 = self.m_propertyGrid_result.Append( pg.StringProperty( u"Ix =", u"Ix =" ) ) self.m_propertyGridItem5 = self.m_propertyGrid_result.Append( pg.StringProperty( u"Iy =", u"Iy =" ) ) self.m_propertyGridItem7 = self.m_propertyGrid_result.Append( pg.StringProperty( u"Ixy =", u"Ixy =" ) ) self.m_propertyGridItem8 = self.m_propertyGrid_result.Append( pg.StringProperty( u"型心 =", u"型心 =" ) ) self.m_propertyGridItem9 = self.m_propertyGrid_result.Append( pg.StringProperty( u"主惯性角 =", u"主惯性角 =" ) ) self.m_propertyGridItem61 = self.m_propertyGrid_result.Append( pg.StringProperty( u"ix =", u"ix =" ) ) self.m_propertyGridItem62 = self.m_propertyGrid_result.Append( pg.StringProperty( u"iy =", u"iy =" ) ) bSizer2.Add( self.m_propertyGrid_result, 0, wx.ALL|wx.EXPAND, 5 ) bSizer1.Add( bSizer2, 1, wx.EXPAND, 5 ) self.SetSizer( bSizer1 ) self.Layout() self.Centre( wx.BOTH ) # Connect Events self.m_choice_section_type.Bind( wx.EVT_CHOICE, self.OnSelectSectionType ) self.m_btn_calculation.Bind( wx.EVT_BUTTON, self.m_btn_calculationOnButtonClick ) self.m_btn_calculation.Bind( wx.EVT_SET_FOCUS, self.m_btn_calculationOnSetFocus )
def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition, size=wx.Size(298, 822), style=wx.DEFAULT_DIALOG_STYLE) self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) bSizer1 = wx.BoxSizer(wx.VERTICAL) bSizer2 = wx.BoxSizer(wx.VERTICAL) self.m_staticText1 = wx.StaticText(self, wx.ID_ANY, u"输入点坐标:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText1.Wrap(-1) bSizer2.Add(self.m_staticText1, 0, wx.ALL, 5) bSizer4 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText7 = wx.StaticText(self, wx.ID_ANY, u"X:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText7.Wrap(-1) bSizer4.Add(self.m_staticText7, 0, wx.ALL, 5) self.m_textCtrl8 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(65, 25), 0) bSizer4.Add(self.m_textCtrl8, 0, wx.ALL, 5) self.m_staticText8 = wx.StaticText(self, wx.ID_ANY, u"Y:", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText8.Wrap(-1) bSizer4.Add(self.m_staticText8, 0, wx.ALL, 5) self.m_textCtrl9 = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(65, 25), 0) bSizer4.Add(self.m_textCtrl9, 0, wx.ALL, 5) self.m_button1 = wx.Button(self, wx.ID_ANY, u"Insert", wx.DefaultPosition, wx.DefaultSize, 0) bSizer4.Add(self.m_button1, 0, wx.ALL, 5) bSizer2.Add(bSizer4, 0, wx.EXPAND, 5) bSizer50 = wx.BoxSizer(wx.HORIZONTAL) bSizer51 = wx.BoxSizer(wx.VERTICAL) m_listBox2Choices = [] self.m_listBox2 = wx.ListBox(self, wx.ID_ANY, wx.DefaultPosition, wx.Size(140, 150), m_listBox2Choices, 0) bSizer51.Add(self.m_listBox2, 0, wx.ALL, 5) bSizer8 = wx.BoxSizer(wx.HORIZONTAL) self.m_button7 = wx.Button(self, wx.ID_ANY, u"Add连通域", wx.DefaultPosition, wx.Size(65, 30), 0) bSizer8.Add(self.m_button7, 0, wx.ALL, 5) self.m_button5 = wx.Button(self, wx.ID_ANY, u"生成复连通", wx.DefaultPosition, wx.Size(60, 30), 0) bSizer8.Add(self.m_button5, 0, wx.ALL, 5) bSizer51.Add(bSizer8, 1, wx.EXPAND, 5) bSizer50.Add(bSizer51, 1, wx.EXPAND, 5) bSizer52 = wx.BoxSizer(wx.VERTICAL) m_listBox3Choices = [] self.m_listBox3 = wx.ListBox(self, wx.ID_ANY, wx.DefaultPosition, wx.Size(140, 150), m_listBox3Choices, 0) bSizer52.Add(self.m_listBox3, 0, wx.ALL, 5) bSizer10 = wx.BoxSizer(wx.HORIZONTAL) self.m_button8 = wx.Button(self, wx.ID_ANY, u"生成组合截面", wx.DefaultPosition, wx.Size(75, 30), 0) bSizer10.Add(self.m_button8, 0, wx.ALL, 5) self.m_button81 = wx.Button(self, wx.ID_ANY, u"Reset", wx.DefaultPosition, wx.DefaultSize, 0) bSizer10.Add(self.m_button81, 0, wx.ALL, 5) bSizer52.Add(bSizer10, 1, wx.EXPAND, 5) bSizer50.Add(bSizer52, 1, wx.EXPAND, 5) bSizer2.Add(bSizer50, 0, wx.EXPAND, 5) bSizer7 = wx.BoxSizer(wx.VERTICAL) self.m_panel1 = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.Size(300, 300), wx.TAB_TRAVERSAL) self.m_panel1.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_ACTIVECAPTION)) bSizer7.Add(self.m_panel1, 0, wx.EXPAND | wx.ALL, 5) bSizer9 = wx.BoxSizer(wx.HORIZONTAL) self.m_button9 = wx.Button(self, wx.ID_ANY, u"打印数据", wx.DefaultPosition, wx.DefaultSize, 0) bSizer9.Add(self.m_button9, 0, wx.ALL, 5) self.m_button6 = wx.Button(self, wx.ID_ANY, u"存入截面库", wx.DefaultPosition, wx.DefaultSize, 0) bSizer9.Add(self.m_button6, 0, wx.ALL, 5) self.m_button82 = wx.Button(self, wx.ID_ANY, u"查看截面库", wx.DefaultPosition, wx.DefaultSize, 0) bSizer9.Add(self.m_button82, 0, wx.ALL, 5) bSizer7.Add(bSizer9, 1, wx.EXPAND, 5) bSizer2.Add(bSizer7, 1, wx.EXPAND, 5) self.m_propertyGrid_result = pg.PropertyGrid( self, wx.ID_ANY, wx.DefaultPosition, wx.Size(330, 320), wx.propgrid.PG_DEFAULT_STYLE) self.m_propertyGridItem1 = self.m_propertyGrid_result.Append( pg.PropertyCategory(u"结果数据", u"结果数据")) self.m_propertyGridItem2 = self.m_propertyGrid_result.Append( pg.StringProperty(u"面积 =", u"面积 =")) self.m_propertyGridItem3 = self.m_propertyGrid_result.Append( pg.StringProperty(u"Sx ", u"Sx ")) self.m_propertyGridItem42 = self.m_propertyGrid_result.Append( pg.StringProperty(u"Sy", u"Sy")) self.m_propertyGridItem4 = self.m_propertyGrid_result.Append( pg.StringProperty(u"Ix", u"Ix")) self.m_propertyGridItem5 = self.m_propertyGrid_result.Append( pg.StringProperty(u"Iy", u"Iy")) self.m_propertyGridItem7 = self.m_propertyGrid_result.Append( pg.StringProperty(u"Ixy", u"Ixy")) self.m_propertyGridItem8 = self.m_propertyGrid_result.Append( pg.StringProperty(u"型心", u"型心")) self.m_propertyGridItem9 = self.m_propertyGrid_result.Append( pg.StringProperty(u"主惯性角", u"主惯性角")) self.m_propertyGridItem61 = self.m_propertyGrid_result.Append( pg.StringProperty(u"ix", u"ix")) self.m_propertyGridItem62 = self.m_propertyGrid_result.Append( pg.StringProperty(u"iy ", u"iy ")) bSizer2.Add(self.m_propertyGrid_result, 1, wx.ALL, 5) bSizer1.Add(bSizer2, 1, wx.EXPAND, 5) self.SetSizer(bSizer1) self.Layout() self.Centre(wx.BOTH) # Connect Events self.m_button1.Bind(wx.EVT_BUTTON, self.m_btn_InsertOnButtonClick) self.m_listBox2.Bind(wx.EVT_RIGHT_UP, self.del_OnRightClick) self.m_button7.Bind(wx.EVT_BUTTON, self.btn_addMultiPropOnButtonClick) self.m_button5.Bind(wx.EVT_BUTTON, self.btn_genMultiPropOnButtonClick) self.m_listBox3.Bind(wx.EVT_LEFT_DCLICK, self.showItemOnDClick) self.m_button8.Bind(wx.EVT_BUTTON, self.btn_genCompOnButtonClick) self.m_button81.Bind(wx.EVT_BUTTON, self.btn_DataClearOnClickButton) self.m_button9.Bind(wx.EVT_BUTTON, self.btn_PrintDataOnclick) self.m_button6.Bind(wx.EVT_BUTTON, self.btn_insertToLibOnButtonClick) self.m_button82.Bind(wx.EVT_BUTTON, self.checkLibOnButtonClick)
def __init__(self, parent): wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"FYIAW Lighting Designer v1", pos=wx.DefaultPosition, size=wx.Size(700, 450), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) self.MainFrame_Toolbar = self.CreateToolBar(wx.TB_HORIZONTAL, wx.ID_ANY) self.Tool_Open = self.MainFrame_Toolbar.AddLabelTool( wx.ID_ANY, u"Open", wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_MENU), wx.NullBitmap, wx.ITEM_NORMAL, wx.EmptyString, wx.EmptyString, None) self.Tool_Save = self.MainFrame_Toolbar.AddLabelTool( wx.ID_ANY, u"Save", wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE_AS, wx.ART_MENU), wx.NullBitmap, wx.ITEM_NORMAL, wx.EmptyString, wx.EmptyString, None) self.MainFrame_Toolbar.Realize() MainFrame_Boxer = wx.BoxSizer(wx.VERTICAL) self.MainListBook = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.Panel_General = wx.Panel(self.MainListBook, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) Panel_General_Boxer = wx.BoxSizer(wx.VERTICAL) self.Label_General = wx.StaticText(self.Panel_General, wx.ID_ANY, u"General Settings", wx.DefaultPosition, wx.DefaultSize, 0) self.Label_General.Wrap(-1) self.Label_General.SetFont( wx.Font(wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, True, wx.EmptyString)) Panel_General_Boxer.Add(self.Label_General, 0, wx.ALL, 5) self.General_Grid = pg.PropertyGrid( self.Panel_General, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_BOLD_MODIFIED | wx.propgrid.PG_DEFAULT_STYLE | wx.propgrid.PG_SPLITTER_AUTO_CENTER | wx.TAB_TRAVERSAL) self.General_CaptureSizeX = self.General_Grid.Append( pg.IntProperty(u"Capture Size: X", u"Capture Size: X")) self.General_CaptureSizeY = self.General_Grid.Append( pg.IntProperty(u"Capture Size: Y", u"Capture Size: Y")) self.General_InitialX = self.General_Grid.Append( pg.IntProperty(u"Initial Window Position: X", u"Initial Window Position: X")) self.General_InitialY = self.General_Grid.Append( pg.IntProperty(u"Initial Window Position: Y", u"Initial Window Position: Y")) Panel_General_Boxer.Add(self.General_Grid, 1, wx.ALL | wx.EXPAND, 5) self.Panel_General.SetSizer(Panel_General_Boxer) self.Panel_General.Layout() Panel_General_Boxer.Fit(self.Panel_General) self.MainListBook.AddPage(self.Panel_General, u"General", False) self.Panel_LEDBoard = wx.Panel(self.MainListBook, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) Panel_LEDBoard_Boxer = wx.BoxSizer(wx.VERTICAL) self.Label_LEDBoard = wx.StaticText(self.Panel_LEDBoard, wx.ID_ANY, u"LED Board Settings", wx.DefaultPosition, wx.DefaultSize, 0) self.Label_LEDBoard.Wrap(-1) self.Label_LEDBoard.SetFont( wx.Font(wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, True, wx.EmptyString)) Panel_LEDBoard_Boxer.Add(self.Label_LEDBoard, 0, wx.ALL, 5) self.LEDBoard_Grid = pg.PropertyGrid( self.Panel_LEDBoard, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_BOLD_MODIFIED | wx.propgrid.PG_DEFAULT_STYLE | wx.propgrid.PG_SPLITTER_AUTO_CENTER | wx.TAB_TRAVERSAL) self.LEDBoard_CategoryGeneral = self.LEDBoard_Grid.Append( pg.PropertyCategory(u"General", u"General")) self.LEDBoard_Enabled = self.LEDBoard_Grid.Append( pg.BoolProperty(u"Enabled", u"Enabled")) self.LEDBoard_OPC_Address = self.LEDBoard_Grid.Append( pg.StringProperty(u"OPC Server Address", u"OPC Server Address")) self.LEDBoard_OPC_Port = self.LEDBoard_Grid.Append( pg.IntProperty(u"OPC Server Port", u"OPC Server Port")) self.LEDBoard_CategorySize = self.LEDBoard_Grid.Append( pg.PropertyCategory(u"LED Board Size", u"LED Board Size")) self.LEDBoard_Pixels_X = self.LEDBoard_Grid.Append( pg.IntProperty(u"Pixel Count: X", u"Pixel Count: X")) self.LEDBoard_Pixels_Y = self.LEDBoard_Grid.Append( pg.IntProperty(u"Pixel Count: Y", u"Pixel Count: Y")) self.LEDBoard_Spacing_X = self.LEDBoard_Grid.Append( pg.IntProperty(u"Pixel Spacing Multiplier: X", u"Pixel Spacing Multiplier: X")) self.LEDBoard_Spacing_Y = self.LEDBoard_Grid.Append( pg.IntProperty(u"Pixel Spacing Multiplier: Y", u"Pixel Spacing Multiplier: Y")) Panel_LEDBoard_Boxer.Add(self.LEDBoard_Grid, 1, wx.ALL | wx.EXPAND, 5) self.Panel_LEDBoard.SetSizer(Panel_LEDBoard_Boxer) self.Panel_LEDBoard.Layout() Panel_LEDBoard_Boxer.Fit(self.Panel_LEDBoard) self.MainListBook.AddPage(self.Panel_LEDBoard, u"LED Board", False) self.Panel_ = wx.Panel(self.MainListBook, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) Panel_General_Boxer1 = wx.BoxSizer(wx.VERTICAL) self.Label_General1 = wx.StaticText(self.Panel_, wx.ID_ANY, u"General Settings", wx.DefaultPosition, wx.DefaultSize, 0) self.Label_General1.Wrap(-1) self.Label_General1.SetFont( wx.Font(wx.NORMAL_FONT.GetPointSize(), 70, 90, 92, True, wx.EmptyString)) Panel_General_Boxer1.Add(self.Label_General1, 0, wx.ALL, 5) self.General_Grid1 = pg.PropertyGrid( self.Panel_, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_BOLD_MODIFIED | wx.propgrid.PG_DEFAULT_STYLE | wx.propgrid.PG_SPLITTER_AUTO_CENTER | wx.TAB_TRAVERSAL) self.General_CaptureSizeX2 = self.General_Grid1.Append( pg.IntProperty(u"Capture Size: X", u"Capture Size: X")) self.General_CaptureSizeY2 = self.General_Grid1.Append( pg.IntProperty(u"Capture Size: Y", u"Capture Size: Y")) self.General_InitialX2 = self.General_Grid1.Append( pg.IntProperty(u"Initial Window Position: X", u"Initial Window Position: X")) self.General_InitialY2 = self.General_Grid1.Append( pg.IntProperty(u"Initial Window Position: Y", u"Initial Window Position: Y")) Panel_General_Boxer1.Add(self.General_Grid1, 1, wx.ALL | wx.EXPAND, 5) self.Panel_.SetSizer(Panel_General_Boxer1) self.Panel_.Layout() Panel_General_Boxer1.Fit(self.Panel_) self.MainListBook.AddPage(self.Panel_, u"a page", False) MainFrame_Boxer.Add(self.MainListBook, 1, wx.EXPAND | wx.ALL, 5) self.SetSizer(MainFrame_Boxer) self.Layout() self.Centre(wx.BOTH)