QT 遍历一个文件夹下的所有图片。

来源:互联网 发布:spss数据统计分析软件 编辑:程序博客网 时间:2024/06/06 15:45

思路
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;}上面的代码多了一些东西,如对文件夹是否存在的验证,分隔符的设置。新手勿喷
阅读全文
0 0