C++ QDir::设置排序不';我不能在Ubuntu上工作

C++ QDir::设置排序不';我不能在Ubuntu上工作,c++,qt,ubuntu,directory,qdir,C++,Qt,Ubuntu,Directory,Qdir,我对QDir有一个问题,我有一个包含很多图像的文件夹,我需要对它们进行迭代,但是,它们必须进行排序,因此,我使用setSorting(QDir::Name)但是,它在Ubuntu上不起作用。当我用QDirIterator迭代它时,它会随机选择给定文件夹中的图片。奇怪的是,我在Windows(minGW或MSVC)上使用了相同的代码,而且工作得非常完美 someClass::someClass(QDir dir) { m_dir = dir; m_directory.setSo

我对QDir有一个问题,我有一个包含很多图像的文件夹,我需要对它们进行迭代,但是,它们必须进行排序,因此,我使用
setSorting(QDir::Name)
但是,它在Ubuntu上不起作用。当我用QDirIterator迭代它时,它会随机选择给定文件夹中的图片。奇怪的是,我在Windows(minGW或MSVC)上使用了相同的代码,而且工作得非常完美

someClass::someClass(QDir dir) {
     m_dir = dir;
     m_directory.setSorting(QDir::Name);
     QStringList filter;
     filter << QString("*.") + format << QString("*.") + "jpg";
     m_dir.setNameFilters(filter);
}
someClass::iterateDir() {
     QDirIterator it(m_dir);
     while(it.hasNext()) {
         it.next();
         qDebug() << it.fileName();

         //analayze the picture here
     }
}
someClass::someClass(QDir-dir){
m_dir=dir;
m_directory.setSorting(QDir::Name);
QStringList滤波器;

筛选您正在混合两个变量:
m\u dir
m\u directory
。我假设这是打字错误,您的意思是使用相同的变量


QDirIterator
不支持排序。
QDir::setSorting()
只影响由
QDir::entryInfoList()和
QDir::entryList()返回的列表
。使用它们中的任何一个进行排序迭代。

您混合了两个变量:
m\u dir
m\u directory
。我假设这是打字错误,您的意思是使用相同的变量


QDirIterator
不支持排序。
QDir::setSorting()
只影响由
QDir::entryInfoList()和
QDir::entryList()返回的列表
。使用它们中的任何一个进行排序迭代。

谢谢你的回答!是的,这是一个打字错误,当我在Windows上使用QDirIterator时,我总是以排序的方式获取图片。我以前使用entryList,但与QDirIterator相比速度非常慢。有没有快速的方法迭代目录?谢谢你的回答!是的,确实如此一个输入错误,当我在Windows上使用QDirIterator时,我总是以排序的方式获取图片。我以前使用过entryList,但它比QDirIterator慢。有没有快速的方法来遍历目录?