[英]QDir::SetSorting Doesn't work on 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()
返回的列表。 将它们之一用于排序迭代。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.