【问题标题】:How to Sort ListView Items in Ascending Order?如何按升序对 ListView 项目进行排序?
【发布时间】:2012-09-23 13:21:20
【问题描述】:

我尝试按升序对我的 ListView 项目进行排序,所以我尝试了

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

它工作得很好,但我不喜欢 Qt::AscendingOrder 策略。实际上,该函数首先对以大写字符开头的单词进行排序,然后对以小写字符开头的其他单词进行排序。然后它将两个结果连接在一起。 例如:

My ListView Items are: apple
                       Ball
                       rose
                       cat
                       Orange

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

有没有办法自定义排序策略?请帮助我...在此先感谢。

【问题讨论】:

  • 为什么不自己写个排序函数?

标签: qt sorting qt4.7 qlistview qstandarditemmodel


【解决方案1】:

使用QSortFilterProxyModel 并将sortCaseSensitivity 设置为Qt::CaseInsensitive 应该可以解决问题。

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

【讨论】:

  • 嗨.. 我尝试使用 QSortFilterProxyModel,即使之后我也无法排序。 o/p 保持不变。另一个疑问是 QTreeViewQTableViewsetSortingEnabled 属性,但为什么 QListView 没有呢?你能用你的代码详细说明一下吗?提前致谢。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 2020-01-30
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多