wxpython制作excel表格_[求助]wxpython grid表格插入行报错

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

窗口和表格代码是从网上找来的。

自己在按钮动作上加了添加行命令: self.grid.AppendCols(numCols=1)

运行后报错如下:

app = wx.PySimpleApp()

Traceback (most recent call last):

File "D:\email\test\wintest.py", line 52, in OnTest

self.grid.AppendCols(numCols=1)

File "D:\Python27\lib\site-packages\wx-3.0-msw\wx\grid.py", line 1285, in AppendCols

return _grid.Grid_AppendCols(*args, **kwargs)

wx._core.PyAssertionError: C++ assertion "Assert failure" failed at ..\..\src\generic\grid.cpp(1129) in wxGridTableBase:

:AppendCols(): Called grid table class function AppendCols

but your derived table class does not override this function

请问这个报错是怎么回事,怎么排除?

或者在初始化生成表格后怎样重新生成表格~

谢谢回复

代码如下:

import wx, wx.grid

class GridData(wx.grid.PyGridTableBase):

_cols = "a b c".split()

_data = [

"1 2 3".split(),

"4 5 6".split(),

"7 8 9".split()

]

_highlighted = set()

def GetColLabelValue(self, col):

return self._cols[col]

def GetNumberRows(self):

return len(self._data)

def GetNumberCols(self):

return len(self._cols)

def GetValue(self, row, col):

return self._data[row][col]

def SetValue(self, row, col, val):

self._data[row][col] = val

def GetAttr(self, row, col, kind):

attr = wx.grid.GridCellAttr()

attr.SetBackgroundColour(wx.GREEN if row in self._highlighted else wx.WHITE)

return attr

def set_value(self, row, col, val):

self._highlighted.add(row)

self.SetValue(row, col, val)

class Test(wx.Frame):

def __init__(self):

wx.Frame.__init__(self, None)

self.data = GridData()

self.grid = wx.grid.Grid(self)

self.grid.SetTable(self.data)

btn = wx.Button(self, label="set a2 to x")

btn.Bind(wx.EVT_BUTTON, self.OnTest)

self.Sizer = wx.BoxSizer(wx.VERTICAL)

self.Sizer.Add(self.grid, 1, wx.EXPAND)

self.Sizer.Add(btn, 0, wx.EXPAND)

def OnTest(self, event):

self.grid.AppendCols(numCols=1)

#self.data.set_value(1, 0, "x")

self.grid.Refresh()

app = wx.PySimpleApp()

app.TopWindow = Test()

app.TopWindow.Show()

app.MainLoop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值