EVT_IDLE(self, self.OnIdle)
- self.CreateGrid(25, 25)
+ self.CreateGrid(25, 25) #, wxGrid.wxGridSelectRows)
+ ##self.EnableEditing(False)
# simple cell formatting
self.SetColSize(3, 200)
self.SetCellFont(0, 0, wxFont(12, wxROMAN, wxITALIC, wxNORMAL))
self.SetCellTextColour(1, 1, wxRED)
self.SetCellBackgroundColour(2, 2, wxCYAN)
- self.SetReadOnly(3, 3, true)
+ self.SetReadOnly(3, 3, True)
- self.SetCellEditor(5, 0, wxGridCellNumberEditor())
+ self.SetCellEditor(5, 0, wxGridCellNumberEditor(1,1000))
self.SetCellValue(5, 0, "123")
self.SetCellEditor(6, 0, wxGridCellFloatEditor())
self.SetCellValue(6, 0, "123.34")
+ self.SetCellEditor(7, 0, wxGridCellNumberEditor())
+
+ self.SetCellValue(6, 3, "You can veto editing this cell")
+
# attribute objects let you keep a set of formatting values
# in one spot, and reuse them if needed
self.SetColLabelAlignment(wxALIGN_LEFT, wxALIGN_BOTTOM)
+ #self.SetDefaultCellOverflow(False)
+ #r = wxGridCellAutoWrapStringRenderer()
+ #self.SetCellRenderer(9, 1, r)
+
+ # overflow cells
+ self.SetCellValue( 9, 1, "This default cell will overflow into neighboring cells, but not if you turn overflow off.");
+ self.SetCellSize(11, 1, 3, 3);
+ self.SetCellAlignment(11, 1, wxALIGN_CENTRE, wxALIGN_CENTRE);
+ self.SetCellValue(11, 1, "This cell is set to span 3 rows and 3 columns");
+
+
+
# test all the events
EVT_GRID_CELL_LEFT_CLICK(self, self.OnCellLeftClick)
EVT_GRID_CELL_RIGHT_CLICK(self, self.OnCellRightClick)
EVT_GRID_EDITOR_CREATED(self, self.OnEditorCreated)
+
def OnCellLeftClick(self, evt):
self.log.write("OnCellLeftClick: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
def OnEditorShown(self, evt):
+ if evt.GetRow() == 6 and evt.GetCol() == 3 and \
+ wxMessageBox("Are you sure you wish to edit this cell?",
+ "Checking", wxYES_NO) == wxNO:
+ evt.Veto()
+ return
+
self.log.write("OnEditorShown: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
+
def OnEditorHidden(self, evt):
+ if evt.GetRow() == 6 and evt.GetCol() == 3 and \
+ wxMessageBox("Are you sure you wish to finish editing this cell?",
+ "Checking", wxYES_NO) == wxNO:
+ evt.Veto()
+ return
+
self.log.write("OnEditorHidden: (%d,%d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetPosition()))
evt.Skip()
+
def OnEditorCreated(self, evt):
self.log.write("OnEditorCreated: (%d, %d) %s\n" %
(evt.GetRow(), evt.GetCol(), evt.GetControl()))
class TestFrame(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, "Simple Grid Demo", size=(640,480))
- self.grid = grid = SimpleGrid(self, log)
-
- self.mainmenu = wxMenuBar()
-
- menu = wxMenu()
-
- mID = NewId()
- menu.Append(mID, 'Preview Grid', 'Print Displayed Grid')
- EVT_MENU(self, mID, self.OnPreviewGrid)
- self.mainmenu.Append(menu, '&Print')
-
- self.SetMenuBar(self.mainmenu)
-
- def OnPreviewGrid(self, event):
- from wxPython.lib.printout import PrintGrid
- grid = self.grid
-
- total_col = 4 # not all columns to be used for printing
- total_row = 4
-
- format = [1, 1.5, 2.5, 4, 5, 7] # column spacing
-
- # class to print and preview
- prt = PrintGrid(self, grid, format, total_col, total_row )
- prt.SetAttributes() # get the colour and text attributes
-
- table = prt.GetTable() # the table print control class
- table.SetHeader("Simple Grid Test Header")
- table.SetFooter()
+ grid = SimpleGrid(self, log)
- prt.Preview() # preview the table
#---------------------------------------------------------------------------
import sys
app = wxPySimpleApp()
frame = TestFrame(None, sys.stdout)
- frame.Show(true)
+ frame.Show(True)
app.MainLoop()