头文件
#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)");
}