gpt4 book ai didi

c++ - QDir::SetSorting 在 Ubuntu 上不起作用

转载 作者:行者123 更新时间:2023-11-28 00:53:08 32 4
gpt4 key购买 nike

我的 QDir 有问题,我有一个包含很 multimap 像的文件夹,我需要遍历它们,但是必须对它们进行排序,所以,我正在使用 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_dirm_directory。我假设这是错字,你的意思是使用相同的变量。

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

关于c++ - QDir::SetSorting 在 Ubuntu 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12965919/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com