2009-10-04 57 views
2

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

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

回答

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) 

没有检查,但这些方针的东西应该为所有的列上工作,除非你有一个列,其中一些值是表示整数的字符串,而另一些则不是。