思路
1. 在对话框中选择一个文件夹
2. 想办法获取文件夹下所有图片的名称
3. 之后就可以操作了
第一步借助 QFileDialog::getExistingDirectory
获取你所选择的文件夹相关信息返回一个QString
第二步
文件夹下可能有其他类型的文件比如:子文件夹,所以需要设置过滤规则。
函数代码如下:
bool MainWindow::bianli(QStringList &stringlist )
{
QString pathname = QFileDialog::getExistingDirectory(
this,
tr("Open Directory"),
"/home",
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
QDir dir(pathname);
// cout<<"bian li kai shi "<<endl;
if(!dir.exists()) return false;
dir.setFilter(QDir::Files|QDir::NoSymLinks);
QStringList filters; filters<<QString("*.bmp");
dir.setNameFilters(filters);
int dir_cout = dir.count();
cout<<dir_cout<<endl;
if(dir_cout<=0) return false;
QChar separator = QChar('/');
if(!pathname.contains(separator))
{
separator = QChar('\\');
}
QChar last_char = pathname.at(pathname.length()-1);
if(last_char == separator)
{
separator = QChar();
}
for(int i=0;i<dir_cout;i++)
{
QString file_name = dir[i]; //文件名称
QString file_path = pathname + separator + file_name; //文件全路径
stringlist.append(file_path);
QString j = stringlist.at(i);
// cout<<j.toLatin1().data()<<endl;
}
return true;
}
上面的代码多了一些东西,如对文件夹是否存在的验证,分隔符的设置。新手勿喷