IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> QFileDialog对话框 -> 正文阅读

[C++知识库]QFileDialog对话框

一、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,
            //不要使用给定的外观。实际这个没啥用了,在QT4.5就不再支持了。不需要关注。
            DontUseSheet                = 0x00000008,
            //不要使用本机的对话框类型。QT默认使用的是本机的对话框类型,例如这种就是win10的,本身已经很好用了。但是如果你想自己设计对话框的背景颜色、字体等等,可以使用这个选项。
            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:正常情况下为空即可,为空代表不限制,既可以选择本地,也可以选择远程的文件。当然前提是你的平台允许选择远程文件,否则只能选择本地文件。
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-27 17:12:03  更:2022-05-27 17:13:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/12 22:15:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码