头文件
#include <QFileDialog>
| 成员名称 | 返回值 | 说明 | 
|---|---|---|
| getExistingDirectory | QString | 返回用户选中的文件夹路径 | 
| getExistingDirectoryUrl | QUrl | 与QFileDialog::getExistingDirectory()的主要区别来自于为用户提供的选择远程目录的能力 | 
| getOpenFileName | QString | 返回用户选中的文件名 | 
| getOpenFileNames | QStringList | 返回用户选中的多条文件名 | 
| getOpenFileUrl | QUrl | 为用户提供的选择远程文件的能力 | 
| getOpenFileUrls | QList<QUrl> | 为用户提供的选择多个远程文件的能力 | 
| getSaveFileName | QString | 保存本地对话框 | 
| getSaveFileUrl | QUrl | 为用户提供保存远程保存文件的对话框 | 
Options 对话框选项
| 名称 | 说明 | 
|---|---|
| QFileDialog::ShowDirsOnly | 仅在文件对话框中显示目录。默认情况下,文件和目录都显示出来。(仅在目录文件模式下有效) | 
| QFileDialog::DontResolveSymlinks | 不要在文件对话框中解析符号链接。默认情况下符号链接被解析 | 
| QFileDialog::DontConfirmOverwrite | 不要询问是否选择了现有的文件。默认情况下请求确认 | 
| QFileDialog::DontUseNativeDialog | 不要使用本机文件对话框。默认情况下,除非使用包含Q_OBJECT宏的QFileDialog子类,或者平台没有所需类型的本机对话框,否则将使用本机文件对话框 | 
| QFileDialog::ReadOnly | 指示模型是只读的 | 
| QFileDialog::HideNameFilterDetails | 指示文件名筛选器细节是否隐藏 | 
| QFileDialog::DontUseSheet | 在以前的Qt版本中,如果静态函数有一个父函数,那么静态函数将默认创建一个工作表。这不再被支持,在Qt 4.5中什么也不做,静态函数将始终是一个应用程序模式对话框。如果希望使用工作表,可以使用QFileDialog::open() | 
| QFileDialog::DontUseCustomDirectoryIcons | 始终使用默认的目录图标。有些平台允许用户设置不同的图标。自定义图标查找会对网络或可移动驱动器的性能造成很大影响。设置此选项将启用图标提供程序中的QFileIconProvider::DontUseCustomDirectoryIcons选项。这个enum值是在Qt 5.2中添加的。 | 
UI界面(右边的窗体):

由于是从ui界面转到槽,来写的槽函数,所以没有手写connect函数
getExistingDirectory 返回用户选中的文件夹路径
//获取文件夹路径
void Widget::on_buttonDirectory_clicked()
{
    QString path = QFileDialog::getExistingDirectory(
                this,               //指定父对象
                "获取一个文件夹路径",  //标题
                "../");             //工作路径
    QString tempStr= QString("%1 %2").arg("当前获取的文件夹路径为:").arg(path);
    ui->textEdit->setText(tempStr);
}getOpenFileName 返回用户选中的文件路径
//获取文件路径
void Widget::on_buttonFileName_clicked()
{
    QString path = QFileDialog::getOpenFileName(
                this,                   //指定父对象
                "获取文件路径",           //标题
                "../",                  //工作路径
                "TXT(*.txt);;Image(*.png *jpg)");        //过滤格式;;过滤格式...
    QString tempStr= QString("%1 %2").arg("当前获取的文件路径为:").arg(path);
    ui->textEdit->setText(tempStr);
}填写过滤格式参数时,是可以过滤多个格式的,只需在后面加上 " ;; "然后继续填写 格式名(*.后缀)。
"TXT(*.txt) ;; Image(*.png *jpg)"
getOpenFileNames 返回用户选中的多个文件路径
//获取多个文件路径
void Widget::on_buttonFileNames_clicked()
{
    QStringList pathList = QFileDialog::getOpenFileNames(
                this,                   //指定父对象
                "获取多个文件路径",        //标题
                "../",                  //工作路径
                "TXT(*.txt)");          //过滤格式
    ui->textEdit->setText(QString("您当前选择了 %1 个文件").arg(QString::number(pathList.size())));
    for(int i = 0;i < pathList.size(); ++i)
    {
        QString tempStr= QString("当前获取的文件 %1 的路径为:%2")
                .arg(i+1)
                .arg(pathList.at(i));
        ui->textEdit->append(tempStr);
    }
}在上方3个例子中都有使用到QT字符串格式化QString::arg(),点这里有单独的一篇关于QT字符串格式化的文章哦
getSaveFileName 保存文件对话框
//保存文件对话框
void Widget::on_buttonSaveFile_clicked()
{
    QString path = QFileDialog::getSaveFileName(
                this,
                "保存文件对话框",
                "../",
                "TXT(*.txt)");
}


















![OSError: [Errno 16] Device or resource busy: ‘.nfs*‘报错解决办法](https://i-blog.csdnimg.cn/direct/5de32cce0682476a8b6a1ace3f3a17c4.png)