Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 如何按升序排列ListView项?_Qt_Sorting_Qt4.7_Qlistview_Qstandarditemmodel - Fatal编程技术网

Qt 如何按升序排列ListView项?

Qt 如何按升序排列ListView项?,qt,sorting,qt4.7,qlistview,qstandarditemmodel,Qt,Sorting,Qt4.7,Qlistview,Qstandarditemmodel,我尝试按升序对ListView项目进行排序,因此尝试使用 Model->sort(int Column, Qt::AscendingOrder) 它工作正常,但我不喜欢Qt::AscendingOrder策略。实际上,该函数首先对以大写字符开头的单词进行排序,然后对以小写字符开头的其他单词进行排序。然后将两个结果连接在一起。 例如: 有没有办法自定义排序策略?请帮我。。。提前谢谢。你可以耍个花招。添加具有相同标签的额外列,但将其转换为小写。将排序应用于此列。使用QSortFilterPr

我尝试按升序对ListView项目进行排序,因此尝试使用

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


有没有办法自定义排序策略?请帮我。。。提前谢谢。

你可以耍个花招。添加具有相同标签的额外列,但将其转换为小写。将排序应用于此列。

使用
QSortFilterProxyModel
并设置为
Qt::casesensitive
应该可以做到这一点


或者导出自己的模型并重写

为什么不编写自己的排序函数呢?嗨。。我尝试使用QSortFilterProxyModel,即使在那之后我也无法排序。o/p保持不变。另一个疑问是QTreeView和QTableView具有setSortingEnabled属性,但是为什么QListView没有这个属性呢?你能用你的代码详细说明一下吗。提前谢谢。
My ListView Items are: apple
                       Ball
                       rose
                       cat
                       Orange

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