目录
使用QFileDialog有两种方法:一是比较简单的静态方法,二是自定义细节的构造方法。这里主要介绍静态方法:
QString getExistingDirectory(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), QFileDialog::Options options = ShowDirsOnly)
QUrl getExistingDirectoryUrl(QWidget *parent = nullptr, const QString &caption = QString(), const QUrl &dir = QUrl(), QFileDialog::Options options = ShowDirsOnly, const QStringList &supportedSchemes = QStringList())
void getOpenFileContent(const QString &nameFilter, const std::function<void (const QString &, const QByteArray &)> &fileOpenCompleted)
QString getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
QStringList getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
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())
QList<QUrl> getOpenFileUrls(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 getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options())
QUrl getSaveFileUrl(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())
void saveFileContent(const QByteArray &fileContent, const QString &fileNameHint = QString())
1、获取文件夹
- getExistingDirectory 只获取文件夹
QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"),
"/home",
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
2、 获取文件夹
- getExistingDirectoryUrl
和getExistingDirectory类似,功能也是获取文件夹路劲,最大的区别在于参数里的路径是QUrl类型,这为用户提供了选择远程目录的功能。
3、获取文件内容
- getOpenFileContent 返回用户选择的文件的内容
auto fileContentReady = [](const QString &fileName, const QByteArray &fileContent) {
if (fileName.isEmpty()) {
// No file was selected
} else {
// Use fileName and fileContent
}
};
QFileDialog::getOpenFileContent("Images (*.png *.xpm *.jpg)", fileContentReady);
4、获取本地文件
- getOpenFileName 获取本地文件,返回文件路径。
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),
"/home",
tr("Images (*.png *.xpm *.jpg)"));
5、获取远程文件
- getOpenFileUrl 获取远程文件,为用户提供了获取远程文件路径的能力
6、获取多个远程文件
getOpenFileUrls 获取多个远程文件 ,可以得到多个远程文件路径
7、获取多个本地文件
-
getOpenFileNames 获取多个本地文件
QStringList files = QFileDialog::getOpenFileNames(
this,
"Select one or more files to open",
"/home",
"Images (*.png *.xpm *.jpg)");
8、保存本地文件对话框
-
getSaveFileName 保存本地文件对话框,返回保存地址。
QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"),
"/home/jana/untitled.png",
tr("Images (*.png *.xpm *.jpg)"));
9、保存远程文件对话框
-
getSaveFileUrl 保存远程文件对话框
10、保存内容到文件
- saveFileContent(const QByteArray &fileContent, const QString &fileNameHint = QString())
fileContent:文件内容
fileNameHint:用户选择的文件
这篇博客介绍了如何使用QFileDialog在Qt环境中进行文件和目录操作,包括获取现有目录、打开本地和远程文件、读取文件内容、保存文件以及获取多个文件的路径。示例代码详细展示了各种功能的用法,方便开发者在Qt应用中实现文件交互功能。

1387

被折叠的 条评论
为什么被折叠?



