大侠请留步!!!关于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一空闲就检测...