2

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

有没有一种简单的方法来解决这个问题?

4

1 回答 1

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)

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

于 2009-10-04T17:01:12.023 回答