首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

大侠请留步!关于wxpython:在网格输入数据后报错,该如何解决

2012-05-28 
大侠请留步!!!关于wxpython:在网格输入数据后报错在网格第一列从上往下依次输入数据,经常出现已经输入过的

大侠请留步!!!关于wxpython:在网格输入数据后报错
在网格第一列从上往下依次输入数据,经常出现已经输入过的数据丢失,导致程序崩溃

报以下错误
Exception in thread Thread-1:
Traceback (most recent call last):
  File "C:\Python26\lib\threading.py", line 522, in __bootstrap_inner
  self.run()
  File "C:\Python26\lib\threading.py", line 477, in run
  self.__target(*self.__args, **self.__kwargs)
  File "F:\AutoTestClientCodes\AutoTestProj.py", line 292, in ExecuteTcl
  if (para.grid.GetCellValue(i,0) != ''):
  File "C:\Python26\Lib\site-packages\wx-2.8-msw-unicode\wx\grid.py", line 1876, in GetCellValue
  return _grid.Grid_GetCellValue(*args, **kwargs)
PyAssertionError: C++ assertion "stringSrc.GetStringData()->IsValid()" failed at ..\..\include\wx/string.h(352) in wxStringBase::wxStringBase(): did you forget to call UngetWriteBuf()?

看不太懂啊,是不是if (para.grid.GetCellValue(i,0) != '')这个判断条件错误?



[解决办法]
CallAfter是异步的,也没返回值,所以不合适你这个场景。或者你换个思路,就简单在UI线程里做事,譬如绑定EVT_GRID_CELL_CHANGE事件,极端状况你可以绑定EVT_IDLE一空闲就检测...

热点排行