QDir :: SetSorting Не работает на Ubuntu

У меня проблема с 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) Я попытался используйте другие sortFlags ( QDir::Size, QDir::LocaleAware ), но ни один из них не работает на Ubuntu. Есть что-то, что мне не хватает? Спасибо за ваше время.

    Вы смешиваете 2 переменные: m_dir и m_directory . Я предполагаю, что это опечатка, и вы хотите использовать одну и ту же переменную.

    QDirIterator не поддерживает сортировку. QDir::setSorting() влияет только на список, возвращаемый QDIr:: entryInfoList() и QDir:: entryList() . Используйте любой из них для сортированной итерации.