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

xiaoxiao2021-02-28  82

思路 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; } 上面的代码多了一些东西,如对文件夹是否存在的验证,分隔符的设置。新手勿喷
转载请注明原文地址: https://www.6miu.com/read-68089.html

最新回复(0)