赞
踩
在利用QDir::entryList获取文件夹中文件列表时,文件的排序可能会不适合我们的要求,比如文件夹中有
file_1.text
file_2.text
file_3.text
...
file_21.text
file_22.text
file_23.text
获取到的排序却是这样的排序
file_1.text
file_10.text
file_11.text
...
file_2.text
file_20.text
file_21.text
此时我们可以尝试以下方法
//QStringList fileList = imgDir.entryList(filters, QDir::Files | QDir::NoDot, QDir::Type);
QStringList fileList = imgDir.entryList(filters, QDir::Files | QDir::NoDot);
QCollator collator;
collator.setNumericMode(true);
std::sort(fileList.begin(), fileList.end(),
[& collator](const QString & str1, const QString & str2)
{
return collator.compare(str1, str2) < 0;
}
);
参考资料:https://www.it1352.com/1820403.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。