在wxpython的listctrl中显示整数
我有一个wxPython的ListCtrl,里面有五列。前四列是字符串,最后一列是整数值。我之前把这些整数当作字符串存储,比如'4'、'17'等等。不过,现在我加了一个ColumnSorterMixin,让我可以对列表中的特定列进行排序,结果发现整数列是按字典顺序排序的,而不是按数字大小排序。
有没有简单的方法可以解决这个问题呢?
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)
我没有实际测试过,但大致上这样的代码应该适用于所有列,除非你有一列的值有些是表示整数的字符串,有些则不是。