【问题标题】:Displaying integers in a wxpython listctrl在 wxpython listctrl 中显示整数
【发布时间】:2010-12-03 18:09:52
【问题描述】:

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

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

【问题讨论】:

    标签: python wxpython listctrl


    【解决方案1】:

    我认为进行自定义排序最可靠的方法是在 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)
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 2011-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多