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

思路
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;
}

上面的代码多了一些东西,如对文件夹是否存在的验证,分隔符的设置。新手勿喷
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值