Qt之QFileDialog类的常用静态方法

这篇博客介绍了如何使用QFileDialog在Qt环境中进行文件和目录操作,包括获取现有目录、打开本地和远程文件、读取文件内容、保存文件以及获取多个文件的路径。示例代码详细展示了各种功能的用法,方便开发者在Qt应用中实现文件交互功能。

目录

1、获取文件夹

2、 获取文件夹

3、获取文件内容

4、获取本地文件

5、获取远程文件

6、获取多个远程文件

7、获取多个本地文件

8、保存本地文件对话框

9、保存远程文件对话框

10、保存内容到文件


        使用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:用户选择的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值