一个QDir :: SetSorting不Ubuntu的工作(QDir::SetSorting Do

2019-09-24 06:55发布

我有一个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
     }
}

这里it.fileName()应打印(0.jpeg,1.jpeg .... 3000.jpeg),而是它打印(2342.jpg,1286.jpg,684.jpg ... 712.jpg)我试着使用其他sortFlagsQDir::Size, QDir::LocaleAware ),但他们没有工作在Ubuntu。 是否有什么我失踪? 感谢您的时间。

Answer 1:

你混合两个变量: m_dirm_directory 。 我认为它是拼写错误,你的意思是使用相同的变量。

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



文章来源: QDir::SetSorting Doesn't work on Ubuntu