排序问题描述:
在某一个文件夹下有很多相似的(SDxx.bin)文件 用Qt将这些文件全部扫描出来 用QTableWidget显示出来
这些都很简单 ^__^心虚
但是问题了 我扫描出来的文件需要排序 如果用它提供的Qt排序规则的话会出现问题
例如:我现在有20个文件
SD1.bin ~SD20.bin 默认排序的结果会是这样的 SD1.bin SD10.bin SD11.bin . . . SD2.bin SD20.bin SD3.bin ......
SD9.bin 但是这明显我不是我们想要的结果
所以自己需要排序读出来的内容
最开始我使用的是快速排序
在MainWindow的头文件中申明
static void AsscendingOrder(const QFileInfo &list1,const QFileInfo &list2);
排序 qSort(list.begin(),list.end(),&MainWindow::AscendingOrder);
int MainWindow::AscendingOrder(const QFileInfo &list1,const QFileInfo &list2)
{
// 如果两个字符串的长度不相等那么就把少的放前面
if(list1.fileName().length() < list2.fileName().length())
{
return 1;
}
else if(list1.fileName().length() > list2.fileName().length())
{
return -1;
}
/