如何按升序排序ListView项目?

时间:2012-09-23 13:21:21

标签: qt sorting qt4.7 qlistview qstandarditemmodel

我试图按升序排序我的ListView项目,所以我尝试了

Model->sort(int Column, Qt::AscendingOrder)

一切正常,但我不喜欢Qt :: AscendingOrder政策。实际上,函数首先对以大写字符开头的单词进行排序,然后对以小写字符开头的其他单词进行排序。然后它将两个结果连接在一起。 对于Eg:

My ListView Items are: apple
                       Ball
                       rose
                       cat
                       Orange

And i'm getting the output as:  Ball
                                Orange
                                apple
                                cat
                                rose

有没有办法自定义排序策略? Plz帮助我...提前致谢。

2 个答案:

答案 0 :(得分:2)

使用QSortFilterProxyModel并将sortCaseSensitivity设置为Qt::CaseInsensitive就可以了。

或者派生自己的模型并覆盖sort()

答案 1 :(得分:0)

你可以申请一个技巧。添加具有相同标签的额外列,但将它们转换为小写。对此列应用排序。