QString strPath("");
QStringList slFiles;
QString strFiler = QString("%1 (*.dat)").arg("External program");//文件过滤器,过滤文件的类型
QFileDialog* pfiledlg = new QFileDialog(this);
pfiledlg->setWindowTitle("Select the import file");//选择导入的文件
pfiledlg->setFileMode(QFileDialog::ExistingFile);
pfiledlg->setAcceptMode(QFileDialog::AcceptOpen);//导入一个文件,AcceptSave
pfiledlg->setViewMode(QFileDialog::List);
pfiledlg->setDefaultSuffix("dat");//如果没有其它指定的后缀那么这个后缀就加到文件名后
pfiledlg->setFilter(Dir::Files);
pfiledlg->setNameFilter(steFilter);//设置过滤器,过滤文件类型
pfiledlg->setOptions(QFileDialog::ReadOnly | QFileDialog::DontUseNativeDialog);
if(pfiledlg->exec() != QDialog::Accepted)
{
delete pfiledlg;
return strPath;
}
slFiles.clear();
slFiles = pfiledlg->selectedFiles();
/*
Return a list of strings containing the absolute paths of the selected files in the dialog. If no files are selected, or the mode is not ExistingFiles or ExistingFile, selectedFiles() contains the current path in the viewport.
ExsitingFile:The name of single existing file.
ExsitingFiles:The name of zero or more existing files.
*/
delete pfiledlg;
以上代码就是使用QFileDialog类,写一个文件选择对话框。最后就是返回你选择文件的路径。
如果想导入一个文件夹的路径,就设置pfiledlg->setFileMode(QFileDialog::Directory);,此时文件过滤器就不需要再设置了。