使用sortItems()对QListWidget进行排序

Kaz*_*uma 2 sorting qt qlistwidget

我在QListWidget上使用sortItems()时遇到问题.这是发生的事情:

改变这个:

A z d C E o I

对此:

A C I d e o z

但我希望它是:

A C d e I o z

有什么方法可以让它变得像那样吗?

Fra*_*eld 10

QListWidget使用DisplayRole(项目的文本)进行排序,并在它们上调用QString :: localeAwareCompare.要覆盖默认值,您可以更改使用的语言环境(请参阅QLocale)或让您自己的QListWidgetItem子类重新实现QListWidgetItem :: operator <并让它进行您想要的比较.

对于任何更高级的东西,我建议你看看QListView,你可以将它与你自己的模型实现或便利模型QStandardItemModelQStringListModel结合起来(后者可能是你案例中最简单和最优雅的解决方案).对于排序,您可以在实际模型和视图之间放置QSortFilterProxyModel.