2009-10-04 1 views
2

다섯 개의 열이있는 wxPython ListCtrl이 있습니다. 이 중 4 개는 문자열을 보유하고 마지막 하나는 정수 값을가집니다. 나는 이것을 문자열 (예 : '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) 

을 확인하지 못했지만,이 라인을 따라 뭔가가 모든 열에 대해 작동합니다 일부 값은 정수를 나타내는 문자열이고 그렇지 않은 값이없는 열이 없으면 예외입니다.