📄 grid.py
字号:
self.properties['lines_color'].set_value(self.lines_color) self.widget.SetRowLabelSize(self.row_label_size) self.widget.SetColLabelSize(self.col_label_size) self.widget.EnableEditing(self.enable_editing) self.widget.EnableGridLines(self.enable_grid_lines) self.widget.EnableDragColSize(self.enable_col_resize) self.widget.EnableDragRowSize(self.enable_row_resize) self.widget.EnableDragGridSize(self.enable_grid_resize) self.widget.SetGridLineColour(misc.string_to_color(self.lines_color)) self.widget.SetLabelBackgroundColour(misc.string_to_color( self.label_bg_color)) i = 0 for l, s in self.columns: try: s1 = int(s) except: s1 = 0 self.widget.SetColLabelValue(i, l) if s1 > 0: self.widget.SetColSize(i, s1) i += 1 self.set_selection_mode(self.selection_mode) # following two events are to permit select grid from designer frame EVT_GRID_CELL_LEFT_CLICK(self.widget, self.on_set_focus) EVT_GRID_LABEL_LEFT_CLICK(self.widget, self.on_set_focus) # these are to show the popup menu on right click EVT_GRID_CELL_RIGHT_CLICK(self.widget, self.popup_menu) EVT_GRID_LABEL_RIGHT_CLICK(self.widget, self.popup_menu) def get_create_grid(self): return self.create_grid def set_create_grid(self, value): self.create_grid = bool(int(value)) def get_row_label_size(self): return self.row_label_size def set_row_label_size(self, value): self.row_label_size = int(value) if value and self.widget: self.widget.SetRowLabelSize(self.row_label_size) def get_col_label_size(self): return self.col_label_size def set_col_label_size(self, value): self.col_label_size = int(value) if value and self.widget: self.widget.SetColLabelSize(self.col_label_size) def get_enable_editing(self): return self.enable_editing def set_enable_editing(self, value): self.enable_editing = bool(int(value)) # Do nothing.## if value and self.widget:## self.widget.EnableEditing(self.enable_editing) # NO! def get_enable_grid_lines(self): return self.enable_grid_lines def set_enable_grid_lines(self, value): self.enable_grid_lines = bool(int(value)) if self.widget: self.widget.EnableGridLines(self.enable_grid_lines) #self.widget.Update() def get_rows_number(self): return self.rows_number def set_rows_number(self, value): self.rows_number = int(value) # the value the user entered if value > 0 and self.widget: # the value that the grid has actual_rows_number = self.widget.GetNumberRows() if self.rows_number > actual_rows_number: # we have to add rows self.widget.AppendRows(self.rows_number - actual_rows_number) if actual_rows_number > self.rows_number: # we have to delete rows self.widget.DeleteRows(self.rows_number, actual_rows_number - self.rows_number) #self.widget.Update() def get_enable_col_resize(self): return self.enable_col_resize def set_enable_col_resize(self, value): self.enable_col_resize = bool(int(value)) if self.widget: self.widget.EnableDragColSize(self.enable_col_resize) def get_enable_row_resize(self): return self.enable_row_resize def set_enable_row_resize(self, value): self.enable_row_resize = bool(int(value)) if self.widget: self.widget.EnableDragRowSize(self.enable_row_resize) def get_enable_grid_resize(self): return self.enable_grid_resize def set_enable_grid_resize(self, value): self.enable_grid_resize = bool(int(value)) if self.widget: self.widget.EnableDragGridSize(self.enable_grid_resize) def get_lines_color(self): return self.lines_color def set_lines_color(self, value): self.lines_color = str(value) if self.widget: self.widget.SetGridLineColour(misc.string_to_color( self.lines_color)) def get_label_bg_color(self): return self.label_bg_color def set_label_bg_color(self, value): self.label_bg_color = str(value) if self.widget: self.widget.SetLabelBackgroundColour(misc.string_to_color( self.label_bg_color)) def get_selection_mode(self): return self.selection_mode## if self.selection_mode == wxGrid.wxGridSelectCells: return 0## if self.selection_mode == wxGrid.wxGridSelectRows: return 1## if self.selection_mode == wxGrid.wxGridSelectColumns: return 2 def set_selection_mode(self, value): _sel_modes = { 'wxGrid.wxGridSelectCells': 0, 'wxGrid.wxGridSelectRows': 1, 'wxGrid.wxGridSelectColumns': 2, } if value in _sel_modes: self.selection_mode = _sel_modes[value] else: try: value = int(value) except: pass else: self.selection_mode = value## if value == 0:## self.selection_mode = wxGrid.wxGridSelectCells## elif value == 1:## self.selection_mode = wxGrid.wxGridSelectRows## else:## self.selection_mode = wxGrid.wxGridSelectColumns # no operation on the grid. def get_columns(self): return self.columns def set_columns(self, cols): # first of all, adjust col number _oldcolnum = len(self.columns) _colnum = len(cols) self.columns = cols if not self.widget: return if _colnum > _oldcolnum: self.widget.AppendCols(_colnum - _oldcolnum) if _colnum < _oldcolnum: self.widget.DeleteCols(0, _oldcolnum - _colnum) i = 0 for l, s in cols: try: s1 = int(s) except: s1 = 0 self.widget.SetColLabelValue(i, misc.wxstr(l)) if s1 > 0: self.widget.SetColSize(i, s1) i += 1 self.widget.ForceRefresh() def get_property_handler(self, name): if name == 'columns': return ColsHandler(self) return ManagedBase.get_property_handler(self, name)# end of class EditGrid def builder(parent, sizer, pos, number=[1]): """\ factory function for EditGrid objects. """ label = 'grid_%d' % number[0] while common.app_tree.has_name(label): number[0] += 1 label = 'grid_%d' % number[0] grid = EditGrid(label, parent, wx.NewId(), sizer, pos, common.property_panel) # A grid should be wx.EXPANDed and 'option' should be 1, # or you can't see it. grid.set_option(1) grid.set_flag("wxEXPAND") node = Tree.Node(grid) grid.node = node grid.show_widget(True) common.app_tree.insert(node, sizer.node, pos-1)def xml_builder(attrs, parent, sizer, sizeritem, pos=None): """\ factory to build EditGrid objects from an xml file """ from xml_parse import XmlParsingError try: label = attrs['name'] except KeyError: raise XmlParsingError, _("'name' attribute missing") if sizer is None or sizeritem is None: raise XmlParsingError, _("sizer or sizeritem object cannot be None") grid = EditGrid(label, parent, wx.NewId(), sizer, pos, common.property_panel, show=False) sizer.set_item(grid.pos, option=sizeritem.option, flag=sizeritem.flag, border=sizeritem.border) #, size=(100,100)) #HELP# node = Tree.Node(grid) grid.node = node if pos is None: common.app_tree.add(node, sizer.node) else: common.app_tree.insert(node, sizer.node, pos-1) return griddef initialize(): """\ initialization function for the module: returns a wx.BitmapButton to be added to the main palette. """ common.widgets['EditGrid'] = builder common.widgets_from_xml['EditGrid'] = xml_builder return common.make_object_button('EditGrid', 'icons/grid.xpm')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -