在wxpython listctrl中显示整数

时间:2009-10-04 15:58:19

标签: python wxpython listctrl

我有一个包含五列的wxPython ListCtrl。其中四个包含字符串,最后一个包含整数值。我一直将它们存储为字符串(即'4','17'等)。但是,现在我已经添加了一个ColumnSorterMixin来让我对列表中的特定列进行排序,当然,我发现整数列是按词法排序而不是数字排序。

有一种简单的方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

我认为自定义排序最强大的方法是在wx.ListCtrl中使用SortItems()函数。请注意,您必须为每个项目提供项目数据(使用SetItemData()

只需提供您自己的回调,请说:

def sortColumn(item1, item2):
    try: 
        i1 = int(item1)
        i2 = int(item2)
    except ValueError:
        return cmp(item1, item2)
    else:
        return cmp(i1, i2)

没有检查它,但沿着这些行的某些内容应该适用于所有列,除非你有一个列,其中某些值是表示整数的字符串而有些则不是。