質問

5列のwxpython listctrlがあります。これらの4つの文字列には、最後の文字列には整数値があります。私はこれらを文字列(すなわち '4'、 '17'など)として保存しています。ただし、リスト内の特定の列を並べ替えるようにColumnSortermixinを追加したので、もちろん、整数列が数値ではなく字句的にソートされていることがわかりました。

これを修正する簡単な方法はありますか?

役に立ちましたか?

解決

カスタムソートを実行する最も堅牢な方法は使用することだと思います 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)

チェックしませんでしたが、これらの線に沿った何かは、整数を表す文字列であり、一部は整数ではない列がない限り、すべての列で機能するはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top