一、getOpenFileName选择打开一个文件
QString **getOpenFileName**(QWidget *parent = nullptr,
const QString &caption = QString(),
const QString &dir = QString(),
const QString &filter = QString(),
QString *selectedFilter = nullptr,
QFileDialog::Options options = Options())
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
"/home",tr("Images (*.png *.xpm *.jpg)"));
-
caption:对话框标题,这里设置为"选择一个文件"。 -
dir :初始化目录,打开对话框时的初始目录,这里用QDinxurrentPath()获取应用程序当前目录。 -
filter :文件过滤器,设置选择不同后缀的文件,可以设置多组文件,如: QString f ilter="文本文件.txt);;图片文件(* .jpg *.gif *.png);;所有文件(*.*)";
每组文件之间用两个分号隔开,同一组内不同后缀之间用空格隔开。 -
selectedFilter :默认选择的过滤器 -
options:对话框的一些参数设定,每个选项可以使用 | 运算组合起来。关于option参数,QT提供了很多种: enum Option
{
ShowDirsOnly = 0x00000001,
DontResolveSymlinks = 0x00000002,
DontConfirmOverwrite = 0x00000004,
DontUseSheet = 0x00000008,
DontUseNativeDialog = 0x00000010,
ReadOnly = 0x00000020,
HideNameFilterDetails = 0x00000040,
DontUseCustomDirectoryIcons = 0x00000080
};
QFileDialog::getOpenFileName() 函数返回的是选择文件的带路径的完整文件名,如果在对话框里取消选择,则返回字符串为空。
二、getOpenFileNames选择打开多个文件
QStringList **getOpenFileNames**(QWidget *parent = nullptr,
const QString &caption = QString(),
const QString &dir = QString(),
const QString &filter = QString(),
QString *selectedFilter = nullptr,
QFileDialog::Options options = Options())
QStringList files = QFileDialog::getOpenFileNames(
this,
"Select one or more files to open",
"/home",
"Images (*.png *.xpm *.jpg)");
返回值是一个字符串列表,列表的每一行是选择的一个文件。
三、getExistingDirectory选择已有目录
QString **getExistingDirectory**(QWidget *parent = nullptr,
const QString &caption = QString(),
const QString &dir = QString(),
QFileDialog::Options options = ShowDirsOnly)
QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
"/home",
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
若需要传递对话框标题和初始路径,还应传递一个选项,一般用 QFileDialog::ShowDirsOnly,表示对话框中只显示目录。 静态函数 QCoreApplication::applicationDirPath() 返回应用程序可执行文件所在的目录,getExistingDirectory() 函数的返回值是选择的目录名称字符串。
四、getSaveFileName选择保存文件名
QString **getSaveFileName**(QWidget *parent = nullptr,
const QString &caption = QString(),
const QString &dir = QString(),
const QString &filter = QString(),
QString *selectedFilter = nullptr,
QFileDialog::Options options = Options())
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
"/home/jana/untitled.png",
tr("Images (*.png *.xpm *.jpg)"));
五、getOpenFileUrl可选择远程网络文件
QUrl **getOpenFileUrl**(QWidget *parent = nullptr,
const QString &caption = QString(),
const QUrl &dir = QUrl(),
const QString &filter = QString(),
QString *selectedFilter = nullptr,
QFileDialog::Options options = Options(),
const QStringList &supportedSchemes = QStringList())
示例:
QString runPath = QCoreApplication::applicationDirPath();
QUrl file_name = QFileDialog::getOpenFileUrl(this,QStringLiteral("选择路径"),runPath,"Text Files(*.txt *.png)",nullptr,QFileDialog::DontUseCustomDirectoryIcons);
- supportedSchemes:正常情况下为空即可,为空代表不限制,既可以选择本地,也可以选择远程的文件。当然前提是你的平台允许选择远程文件,否则只能选择本地文件。
|