1. 打开文件夹
void MainWindow::open()
{
QFileDialog* fd = new QFileDialog(this);
fd->setWindowTitle(tr("Open Folder"));
fd->setDirectory("./");
fd->setFileMode( QFileDialog::DirectoryOnly );
QStringList fileName;
if ( fd->exec() == QDialog::Accepted )
{
fileName = fd->selectedFiles();
picManger.addFolderImages(fileName.at(0));
picPlayer.setFileList(picManger.getFileList());
qDebug() << "....... playNext 3 time:"<< fileName.at(0);
}
}
2.压缩保存新图片:图片太大加载慢所以要压缩(参考:http://blog.csdn.net/shado_walker/article/details/54023137)
#include "picmanager.h"
#include <QStringList>
#include <QString>
#include <QList>
#include <QPixmap>
#include <QDebug>
#include <QDir>
#include <QFileDialog>
#include <QDateTime>
#include <QMutex>
#include <QFile>
PicManager::PicManager(QObject *parent) :
QObject(parent)
{
}
QStringList PicManager::getFileList()
{
return this->newFileList;
}
void PicManager::addFolderImages(QString path)
{
//判断路径是否存在
QDir dir(path);
if(!dir.exists())
{
qDebug() << "....... addFolderImages !dir.exists() return path:"<< path;
return;
}
QString newDir = createNewDir(path);
if(newDir == ""){
qDebug() << "....... addFolderImages newDir:"<< newDir << "return";
return;
}
addImgPaths2FileList(path);
compressAndCopyImgs2NewPath(newDir);
}
void PicManager::compressAndCopyImgs2NewPath(QString newPath)
{
newFileList.clear();
foreach(QString str, fileList) {
int index = str.lastIndexOf("/");
QString fileName = str.right(str.length()-index);
QString desFilePath = newPath + fileName;