Есть папка, в папке некоторое кол-во папок, в которых находятся изображения. задача заключается в том чтобы, указав начальную папку, получить в остальных, содержащихся в ней папка, собранные изображения из тех, что имеются. вопрос сборки не интересует, интересует именно перебор папок и их содержания. пробовал итераторы, но не вышло.
попробовал использовать совет - не вышло;
более подробно: поочередно из папок извлекать изображения и собирать их, но не могу понять как осуществить перебор папок. пример: есть папка "panoram",окей, перехожу в нее, ничего сложного. в ней папки "Z=-n",...., "Z=n" и уже в них нужные мне файлы. вот и возникает вопрос как перебрать все папки и их содержимое.
QString path = "/Users/kirill/Desktop/panoram/";
QDir dirCat(path);
dirCat.setFilter(QDir::Dirs);
QFileInfoList list = dirCat.entryInfoList();
for (int i = 0; i < list.size(); ++i) {
QFileInfo fileInfo = list.at(i);
QString catName = fileInfo.fileName();
QString catBase = fileInfo.baseName();
QString pathCat = fileInfo.path();
QDir dirPix(pathCat);
dirPix.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
dirPix.setSorting(QDir::Name);
QFileInfoList dirdir = dirPix.entryInfoList();
for (QFileInfoList::iterator it = dirdir.begin(); it != dirdir.end(); ++it)
{
int hgf = 0;
QString ststst = QString::number(hgf);
QFileInfo fileInfo(*it);
QString name = fileInfo.fileName();
QString base = fileInfo.baseName();
QStringList lst = base.split(QRegExp("[A-Za-z]="),QString::SkipEmptyParts);
QStringList::iterator itr = lst.begin();
QString pos,fileName;
qreal xPos, yPos;
pos = *itr;
xPos = pos.toInt();
++itr;
pos = *itr;
yPos = pos.toInt();
savePix = "/Users/kirill/Desktop/panoram/Z=" + catBase + "/build"+ ststst +".jpg";
fileName=pathCat+'/'+name;
scene = new QGraphicsScene();
pix = new QGraphicsPixmapItem(fileName);
pix->setPos(QPointF(xPos,yPos));
scene->addItem(pix);
QImage image(scene->width(), scene->height(), QImage::Format_ARGB32_Premultiplied);
// image.fill(NULL);
QPainter painter(&image);
scene->render(&painter);
image.save(savePix);
++hgf;
}
}
Не понял, при чем тут итераторы, но вопрос перебора содержимого папок решается с помощью метода QDir::entryInfoList
. Вот пример, который выведет все папки, которые имеются в заданной вами папке:
QDir dir("/path/to/dir");
dir.setFilter(QDir::Dirs);
QFileInfoList list = dir.entryInfoList();
for (int i = 0; i < list.size(); ++i) {
QFileInfo fileInfo = list.at(i);
std::cout << fileInfo.fileName().toStdString() << std::endl;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При select в QSqlTableModel не вызывается сигнал rowsInsertedИ вызывается только тогда когда добавляется строка через insertRow
Как заставить QLabel выделять url в (не статичном) тексте и открывать их в браузере? Вот код для примера:
Как отсортировать объекты по инициалам? Те когда я буду заполнять массив объектов, хочу чтобы они выводились не в порядке заполнения, а по алфавитному...