Qt从指定目录读取图像文件保存并在QLabel上不断显示Demo

时间:2021-08-24 22:48:02


void readImg()
{
    std::vector<QImage> vecImg;
    //获取文件的路径
    //QString folderName = QCoreApplication::applicationDirPath();  获取当前路径

    QString folderName = QFileDialog::getExistingDirectory(this, tr("Open Folder"), QString());
    if (!folderName.isEmpty())
    {
        QDir dir(folderName);
        vecImg.clear();
        //过滤.jpg/png/bmp后缀图片
        QFileInfoList pathImgList = dir.entryInfoList(QStringList() << "*.jpg" << "*.png" << "*.bmp", QDir::Files, QDir::NoSort);
        for(QFileInfoList::iterator pathImgIter = pathImgList.begin(); pathImgIter != pathImgList.end(); ++pathImgIter)
        {
            QString imgName = pathImgIter->absoluteFilePath();
            QImage img(imgName);
            vecImg.push_back(img);
            //调整QLable的尺寸为图片的尺寸
            ui->dispImgLbl->setPixmap(QPixmap::fromImage(img));
            ui->dispImgLbl->resize(img.size());
        }
    }
}
注意:在QLabel上不断显示图片需要用到多线程. 不然这个方法只能显示最后一张图片。 因为需要等这个方法执行结束,才会执行QLabel上显示图片