2016-03-15 3 views
1

Я новичок в QT, и я хочу отображать много изображений и иметь возможность загружать их из папки, у меня есть код только для одного изображения, он отлично работает, но вы хотите иметь тот же результат для многих изображений, вот мой код:Загрузить изображения из папки с Qt

QString imagePath = QFileDialog::getOpenFileName(
      this, 
      tr("Open File"), 
      "", 
      tr("JPEG (*.jpg *.jpeg);;PNG (*.png);; BMP (*.bmp)") 
      ); 
imageObject = new QImage(); 
imageObject->load(imagePath); 
image = QPixmap::fromImage(*imageObject); 
scene = new QGraphicsScene(this); 
scene->addPixmap(image); 
scene->setSceneRect(image.rect()); 
ui->graphicsView->setScene(scene); 
+0

попробуйте использовать кодовые скобки, чтобы сделать его читаемым :) – bofredo

+0

используйте * * QStringList QFileDialog :: getOpenFileNames (...) ** –

ответ

1

Вы можете использовать открытую папку, вот только snipsets:

const QString folderPath = QFileDialog::getExistingDirectory(this, tr("Image folder")); 
if(!folderPath.isEmpty()) 
{ 
    QDir dir(folderPath); 
    QStringList filter; 
    filter << QLatin1String("*.png"); 
    filter << QLatin1String("*.jpeg"); 
    filter << QLatin1String("*.jpg"); 
    dir.setNameFilters(filter); 
    QFileInfoList filelistinfo = dir.entryInfoList(); 
    QStringList fileList; 
    foreach (const QFileInfo &fileinfo, filelistinfo) { 
     QString imageFile = fileinfo.absoluteFilePath(); 
     //imageFile is the image path, just put your load image code here 
    } 
} 
+0

спасибо, это очень полезно, однако не может получить доступ к изображениям ?? – ner

+0

Что вы имеете в виду, не можете получить доступ к изображениям? – Apin

Смежные вопросы