Отображение целых чисел в wxpython listctrl - PullRequest
2 голосов
/ 04 октября 2009

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

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

1 Ответ

2 голосов
/ 04 октября 2009

Я думаю, что самый надежный способ сделать пользовательскую сортировку - это использовать функцию 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)

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

...