2017-10-21 36 views
0

我有一个用于存储大型网格数据的自定义wxPython表。我基于wiki和wxPython演示实现了我的实现。为了使它工作,我重写了几个GridTableBase方法。我存储我的网格数据的熊猫数据帧,所以GetColLabel看起来是这样的:在wxPython自定义表中设置列名称

class HugeTable(gridlib.GridTableBase): 
.... 

def GetColLabelValue(self, col): 
    """                        
    Get col label from dataframe                  
    """                    
    if len(self.dataframe): 
     return self.dataframe.columns[col] 
    return '' 

我已经覆盖SetColLabelValue用下面的代码:

def SetColLabelValue(self, col, value): 
    """                        
    Set col label value in dataframe                 
    """ 
    if len(self.dataframe): 
     col_name = str(self.dataframe.columns[col]) 
     self.dataframe.rename(columns={col_name: str(value)}, inplace=True) 
     return '' 
    return '' 

此代码更改列名,但它会产生此错误:

TypeError: invalid result from HugeTable.SetColLabelValue() 

我不确定为什么会发生此错误。

我有两个问题。 1.如何找出预期的回报价值? 2.我如何防止此错误?

版本注:我使用wxPython的凤凰4.0.0a1在OS X

+1

文档在这里:https://wxpython.org/Phoenix/docs/html/index.html在你的情况下,文档不会说任何关于返回值的东西,所以可能它必须是'None' –

+0

我试过并且None创建此错误:'TypeError:无效的结果来自HugeTable.GetValue(),无法在此上下文中将NoneType转换为C/C++ wxString' –

+0

啊,我错了。这确实有用!谢谢 –

回答

相关问题