最近做了一个项目,里面有一个文件导入文件框模块是我写的,其中得按文件名排序,最开始我是通过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());