Hi,
Python: 3.9.5
wxPython: 4.1.2a1.dev5165+64e5d863 msw (phoenix)
wxWidgets 3.1.5
The virtual wx.gridtablebase model is known to be able showing infinite rows, but it failed showing more than 7M rows as the following minimal example.
Are there any way to work around?
Thanks.
import wx
import wx.grid
print(wx.VERSION_STRING)
class GTable(wx.grid.GridTableBase):
def init(self):
wx.grid.GridStringTable.init(self)
def GetNumberRows(self):
return 10000000
def GetNumberCols(self):
return 2
def GetColLabelValue(self, col):
return "A"+str(col)
def GetRowLabelValue(self, row):
return str(row+1)
def IsEmptyCell(self, row, col):
return False
def GetValue(self, row, col):
return str(row)+'-'+str(col)
def GetTypeName(self, row, col):
return wx.grid.GRID_VALUE_STRING
def SetValue(self, row, col, value):
pass
class MyGrid(wx.grid.Grid):
def init(self, parent):
wx.grid.Grid.init(self, parent, -1)
gtable = GTable()
self.SetTable(gtable,True)
class TestFrame(wx.Frame):
def init(self, parent):
wx.Frame.init(self, parent, -1, “A Grid”, size=(400, 400))
grid = MyGrid(self)
if name == ‘main’:
app = wx.App()
frame=TestFrame(None)
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
CrashedGrid Image: