QListWidgetでsortItems()を使用しているときに問題が発生します。これが何が起こるかです:
これを変更します:
A z d C E o I
これに:
A C I d e o z
しかし、私はそれをしたい:
A C d e I o z
そのように並べ替えるために変更する方法はありますか?
QListWidgetでsortItems()を使用しているときに問題が発生します。これが何が起こるかです:
これを変更します:
A z d C E o I
これに:
A C I d e o z
しかし、私はそれをしたい:
A C d e I o z
そのように並べ替えるために変更する方法はありますか?
QListWidget は、並べ替えに DisplayRole (項目のテキスト) を使用し、QString::localeAwareCompare を呼び出します。デフォルトをオーバーライドするには、使用するロケールを変更するか ( QLocaleを参照)、独自の QListWidgetItem サブクラスでQListWidgetItem::operator<を再実装して、必要な比較を行うことができます。
より高度なものについては、QListViewをご覧になることをお勧めします。これは、独自のモデル実装または便利なモデルQStandardItemModelまたはQStringListModelと組み合わせることができます (後者は、あなたのケースでは最もシンプルでエレガントなソリューションになる可能性があります)。並べ替えのために、実際のモデルとビューの間にQSortFilterProxyModelを配置します。