PyGridTable AppendRows
Verfasst: Montag 24. Juli 2006, 14:29
Hallo
Irgendwie klappt bei mir das anfügen von Rows nicht
als Resultat bei den Aufrufen erhalte ich
7
5
5
D.h. self.rowLabels wurde vergrössert aber sonst ist nichts passiert?
Im Buch wxPython in Action steht, das man die Funktion AppendRows überschreiben muss, diese Funktion müsse entweder True oder False zurückgeben. Aber gebe ja immer True zurückt
Irgendwie klappt bei mir das anfügen von Rows nicht

Code: Alles auswählen
class TableBuchen(wx.grid.PyGridTableBase):
def __init__(self, data, rowLabels = [], colLabels=[]):
wx.grid.PyGridTableBase.__init__(self)
self.rowLabels = rowLabels
self.colLabels = colLabels
self.data = data
def GetNumberRows(self):
return len(self.rowLabels)
def GetNumberCols(self):
return len(self.colLabels)
def IsEmptyCell(self, row, col):
return self.data.get((row, col)) is not None
def GetValue(self, row, col):
value = self.data.get((row, col))
if value == None:
return ''
else:
return value
def SetValue(self, row, col, value):
self.data[(row, col)] = value
def AppendRows(self, numRows=1):
for i in range(numRows):
self.rowLabels.append(str(len(self.rowLabels)+1))
return True
def AppendCols(self, numCols=1):
return False
def GetColLabelValue(self, col):
return str(self.colLabels[col])
def GetRowLabelValue(self, row):
return str(self.rowLabels[row])
def SetColLabelValue(self, col, value):
self.colLabels[col] = str(value)
def SetRowLabelValue(self, row, value):
self.rowLabels.clear[row] = str(value)
class GridBuchen(wx.grid.Grid):
def __init__(self, parent):
wx.grid.Grid.__init__(self, parent, size=(399, 299))
temp = sqlbase.Query("Select * from Buchungen")
data = {}
rowlabels=[]
collabels=[]
for i in range(len(temp)):
rowlabels.append(i)
for x in range(len(temp[i])):
data[(i,x)]= temp[i][x]
for i in range(6):
collabels.append(i)
table = TableBuchen(data, rowlabels, collabels)
self.SetTable(table, True)
self.AppendRows(2)
self.ForceRefresh()
print table.GetNumberRows()
print self.GetNumberRows()
print self.GetNumberRows()
7
5
5
D.h. self.rowLabels wurde vergrössert aber sonst ist nichts passiert?
Im Buch wxPython in Action steht, das man die Funktion AppendRows überschreiben muss, diese Funktion müsse entweder True oder False zurückgeben. Aber gebe ja immer True zurückt
