Отображение целых чисел в wxpython listctrl

У меня есть wxPython ListCtrl с пятью столбцами. Четыре из них содержат строки, последняя имеет целочисленные значения. Я хранил их как строки (то есть «4», «17» и т. Д.). Однако теперь, когда я добавил ColumnSorterMixin, чтобы позволить мне сортировать определенные столбцы в списке, я обнаружил, конечно, что целочисленный столбец сортируется лексически, а не численно.

Есть ли простой способ исправить это?

4.10.2009 15:58:18
1 ОТВЕТ
РЕШЕНИЕ

Я думаю, что самый надежный способ сделать пользовательскую сортировку - это использовать функцию SortItems () в wx.ListCtrl. Обратите внимание, что вы должны предоставить данные для каждого элемента (используя SetItemData())

Просто предоставьте свой собственный обратный звонок, скажите:

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

Не проверял, но что-то вроде этих строк должно работать для всех столбцов, если только у вас нет столбца, где некоторые значения являются строками, представляющими целые числа, а некоторые - нет.

2
4.10.2009 17:01:12