选择文件夹:
QFileDialog *fileDialog = new QFileDialog(this);
fileDialog->setFileMode(QFileDialog::Directory);
fileDialog->exec();
auto selectDir = fileDialog->selectedFiles();
if (selectDir.size()>0)
{
qDebug() << "文件夹名称:" << selectDir.at(0);
}
选择文件-打开:
// 快速选择一个文件
//QString sFileName = QFileDialog::getOpenFileName(this,"选择文件","/","C++ files(*.cpp);;C files(*.c);;Head files(*.h)");
//qDebug() << "文件名称:" << sFileName;
QFileDialog *fileDialog = new QFileDialog(this);
fileDialog->setFileMode(QFileDialog::Directory);
//设置窗口的标题
fileDialog->setWindowTitle("请选择文件");
//也可以使用下面代码设置多个过滤器
QStringList filters;
filters << "Image files (*.png *.xpm *.jpg)"
<< "Text files (*.txt)"
<< "Any files (*)";
fileDialog->setNameFilters(filters); //这个函数名称后面多了一个s,表示设置多个过滤器。要看清楚。
//QFileDialog::ExistingFiles 多个文件,还可以用来选择文件夹QFileDialog::Directory。
fileDialog->setFileMode(QFileDialog::ExistingFiles);
//如果是要保存文件,那就需要再设置一下
//fileDialog.setAcceptMode(QFileDialog::AcceptSave);
//弹出对话框
if (fileDialog->exec() == QDialog::Accepted)
{
QStringList listFiles = fileDialog->selectedFiles();
for (auto fileName : listFiles)
{
qDebug() << "文件名称:" << fileName;
}
}
选择文件-保存:
fileName = QFileDialog::getOpenFileName(this, tr("选择一张图片"), "C:/Users/jiage/Desktop", tr("Image Files (*.png *.jpg *.bmp)"));