QDir に問題があります。このフォルダーにはたくさんの画像があり、それらを反復処理する必要がありますが、並べ替える必要があるため、使用していますが、 Ubuntu ではsetSorting(QDir::Name)
機能しません。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では機能しません。足りないものはありますか?お時間をいただきありがとうございます。