在wxPython自定义表中设置列名

时间:2017-10-21 02:30:46

标签: python wxpython

我有一个用于存储大型网格数据的自定义wxPython表。我的实现基于wiki和wxPython演示。为了使它工作,我覆盖了几个GridTableBase方法。我将网格数据存储在pandas数据框中,因此GetColLabel看起来像这样:

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.如何防止此错误?

版本说明:我在OS X上使用wxPython Phoenix 4.0.0a1。

1 个答案:

答案 0 :(得分:0)

文档在这里:https://wxpython.org/Phoenix/docs/html/index.html

编辑SetColLabel以返回None而非''修复此问题。