最近做了一个项目,里面有一个文件导入文件框模块是我写的,其中得按文件名排序,最开始我是通过QString来比较大小排序,但是这种排序方法有点问题,和Windows默认的排序方法有较大区别,最好我查阅资料,最终解决了这个问题,废话不说了直接上代码,这是我里面的一个函数。
void QFileViewer::slotSortItem()
{
QString str1,str2;
QFileInfo tmpInfo;
QFileInfoList fileInfoList;
if(sortModel == 0)
{
std::sort(mDirInfoList.begin(),mDirInfoList.end(),[](const QFileInfo &a, const QFileInfo &b)
{
return !(a.fileName().length() > b.fileName().length() ||a.fileName().length() == b.fileName().length()&& a.fileName() > b.fileName());
});

在QT项目中,作者遇到了文件导入模块按文件名排序的问题。初始使用QString比较排序与Windows默认方式存在差异。经过研究,作者采用QFileInfo进行排序,实现了符合预期的排序效果。代码示例展示了如何根据文件名长度和名称进行升序和降序排序。
最低0.47元/天 解锁文章
913

被折叠的 条评论
为什么被折叠?



