Qt Quick - FileDialog文件对话框

news2024/12/24 3:15:37

FileDialog文件对话框使用总结

  • 一、概述
  • 二、使用
  • 三、常用属性
  • 四、常用例子
    • 1. 单选打开文本文件
    • 2. 单选保存文本文件

一、概述

FileDialog提供了一个基本的文件选择器的功能:它允许用户选择现有的文件或目录,或者创建新的文件名。

对话框最初是不可见的。你需要首先按需设置属性,然后将visible设置为true或调用open()。

对于其父窗口,文件对话框窗口是自动临时的。因此,无论您在项目中还是在窗口中声明对话框,对话框都将显示在包含项目的窗口或您声明的窗口的中央

FileDialog的实现将是一个平台文件对话框。如果失败了,那么它将尝试实例化一个QFileDialog。如果这也失败了,那么它将退回到QML实现,defaultfildialog . QML。在这种情况下,您可以通过编辑此文件来定制外观。

DefaultFileDialog.qml包含一个矩形来保存对话框的内容,因为某些嵌入式系统不支持多个顶级窗口。当对话框变得可见时,如果可能的话,它将自动包装在一个窗口中,如果只能有一个窗口,则简单地在主窗口的顶部重新添加父元素。

QML实现有一个侧边栏,其中包含通用平台特定位置的快捷方式,以及用户可修改的收藏夹。它使用特定于应用程序的设置来存储用户的收藏夹,以及其他用户可修改的状态,例如是否显示侧边栏、分割器的位置和对话框大小。这些设置存储在应用程序特定的QSettings的一个称为QQControlsFileDialog的部分中。

例如,当使用qml工具测试应用程序时,将在qml运行时设置文件(或注册表项)中创建QQControlsFileDialog部分。如果应用程序是通过自定义c++ main()函数启动的,建议设置名称、组织和域,以便控制应用程序设置的位置。 有时候不设置就会出问题,如果在应用程序的其他部分使用设置对象,它们将存储在同一文件的其他部分。

//如果调用时有问题,就在c++里写下面的东西
setOrganizationName("自己的组织");
setOrganizationDomain("自己的域名");

QFileDialog全局存储其设置,而不是按应用程序存储。平台原生文件对话框可以也可以不以各种平台相关的方式存储设置。

二、使用

下面是一个打开文件对话框并在用户选择文件后退出的最小示例:

  import QtQuick 2.2
  import QtQuick.Dialogs 1.0

  FileDialog {
      id: fileDialog
      title: "Please choose a file"
      folder: shortcuts.home
      onAccepted: {
          console.log("You chose: " + fileDialog.fileUrls)
          Qt.quit()
      }
      onRejected: {
          console.log("Canceled")
          Qt.quit()
      }
      Component.onCompleted: visible = true
  }

注意返回的是一个字符串 url 在c++里面使用这个字符串的话,要把这个url转换为 QUrl -> QString

//设 qmlStr 是从qml到c++里面的路径url字符串
QUrl url(qmlStr );
QString localFilePath = url.toLocalFile();

QFile(localFilePath );

//下面就是处理文件之类的

三、常用属性

fileUrl : url

fileUrls : list

  • 都是保存文件的路径之类的。

defaultSuffix : string

  • 如果没有指定其他后缀,则此属性保存添加到文件名的后缀。
    此属性指定一个字符串,如果该字符串没有后缀,则将添加到文件名中。后缀通常用于表示文件类型(例如:其中txt为文本文件)。
    如果第一个字符是点号(‘.’),则删除它。

nameFilters : list

  • 用作文件名过滤器的字符串列表。每个字符串可以是一个以空格分隔的过滤器列表;过滤器可能包括?和*通配符。过滤器列表也可以用括号括起来,并提供过滤器的文本描述。就像下面的这种。
 FileDialog {
      nameFilters: [ "Image files (*.jpg *.png)", "All files (*)" ]
  }

shortcuts : Object

  • 从QStandardPaths到它们的url的一些有用路径的映射。在创建文件对话框时,将每个路径添加到该列表之前,都要验证它们是否存在于用户的计算机上。例如,shortcuts.home 将提供用户主目录的URL。
属性名Qt对应的值作用
desktopQStandardPaths::DesktopLocation用户的桌面路径.
documentsQStandardPaths::DocumentsLocation用户的文档路径
homeQStandardPaths::HomeLocation用户家目录.
musicQStandardPaths::MusicLocation用户音乐目录
moviesQStandardPaths::MoviesLocation用户多媒体目录
picturesQStandardPaths::PicturesLocation用户的照片目录

四、常用例子

1. 单选打开文本文件

FileDialog {
            id: fileDialog
            folder: shortcuts.desktop
            nameFilters: [ "文本文件 (*.txt *.mcp)", "All files (*)" ]
            title: "请选择一个文件"
            onAccepted: {
                backend.filePath = fileUrl
            }
            onRejected: {
               fileDialog.close();
            }
}

在这里插入图片描述

2. 单选保存文本文件

这里就是要设置一下 selectExisting: false 因为是要保存文件

FileDialog {
             id: saveDialog
             title: "另存文件"
             folder: shortcuts.desktop
             nameFilters: [ "文本文件 (*.txt * .mcp)", "All files (*)" ]
            selectExisting: false
             onAccepted: {
                 console.log(saveDialog.fileUrl)
             }
             onRejected: {
             }
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/430125.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【性能测试学习】2023最有效的7大性能测试技术(建议收藏)

进入互联网时代,性能测试显得越来越重要,移动应用、web应用和物联网应用都需要进行性能测试和性能调优,而进行性能和负载测试会产生了大量的数据,这些数据难以分析。除了数据分析,我们还会遇到其它一些困难和挑战。 今…

数据结构和算法学习记录——认识二叉搜索树及二叉搜索树的查找操作(递归以及迭代实现-查找操作、查找最大和最小元素)

目录 二叉搜索树 二叉搜索树的一些操作函数 二叉搜索树的查找操作Find 递归实现 迭代实现 查找最大和最小元素 查找最小元素的递归函数 查找最大元素的迭代函数 二叉搜索树 二叉搜索树(BST,Binary Search Tree),也称二…

深入了解 Hugging Face 中的生成工具:Generate方法

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

SSH升级

升级openssh版本一、安装telnet远程管理主机1、检查是否安装telnet2、安装telnet服务二、下载所需的安装包1、下载openssl、openssh、zlib安装包2、安装所需的相关软件3、备份原来的数据4、复制文件到/usr/local/bin/下增加执行权限一、安装telnet远程管理主机 1、检查是否安装…

通达信口袋支点选股公式编写和设置方法答疑

1、口袋支点选股公式成交量条件 在我编写的口袋支点选股公式中,成交量条件为成交量创10日新高。有网友提出,根据书中的定义,口袋支点成交量条件是成交量大于近10日下跌时的最大成交量。 这个问题确实是我没考虑周全,成交量创10日…

【5G NAS】NR 终端侧PDU建立过程以及数据包的过滤和映射

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

对数据去趋势

对数据去趋势 测量的信号可能显示数据中非固有的整体模式。这些趋势有时会妨碍数据分析,因此必须进行去趋势。 以具有不同趋势的两种心电图 (ECG) 信号为例。ECG 信号对电源干扰等扰动很敏感。加载信号并绘制它们。 load(ecgSignals.mat) t (1:length(ecgl));su…

LaTeX+Overleaf 论文速通教程

一、文本/排版二、章节和段落三、数学公式四、插入图片五、插入表格六、参考文献与交叉引用不使用BibTeX使用BibTeX(推荐)七、交叉引用label和refOverleaf开发界面 latex命令:\命令[可选参数]{必选参数} Latex项目组成: .tex:正文 .bib&…

如何对数据库进行优化

数据库是什么? 简单来说数据库就是将数据按照一定顺序存储到磁盘上的一个软件,我们平时写的sql语句,就是用数据库软件能识别的语言,对数据进行增删改查。其实数据本质上是不存在表里,而是存在磁盘上,所谓的…

掌握亚马逊,沃尔玛,东南亚平台的测评要点,测评事半功倍

测评其实最重要的两个点就是自己的资源和成号率 资源包括;商家资源,中介资源,礼品卡资源,还有买卖账号的渠道,ip资源 成号率这个直接影响的就是你个人投入成本的多,成号率越高,你的成本越低,但…

【Java版oj】day36Rational Arithmetic、Pre-Post

目录 一、Rational Arithmetic (1)原题再现 (2)问题分析 (3)完整代码 二、Pre-Post (1)原题再现 (2)问题分析 (3)完整代码 一、…

十七、小程序报错 真机调试预览失效 Error: Illegal Buffer

报错 电脑端微信开发者工具运行成功而真机调试预览失效 报错 MiniProgramError Illegal Buffer 报错 {errno: 600001, errMsg: “request:fail -200:net::ERR_CERT_COMMON_NAME_INVALID”} 前言:手头有个去年的微信小程序项目 年底甲方不在使用 所以停掉了服务器、…

互联网医院系统构建:探索开源云平台与互联网医院平台源码的融合

互联网医院系统作为一种新型医疗服务模式,将传统的医院门诊转化为在线咨询、远程会诊等形式,帮助患者更加方便地获得专业医疗服务。 在实现互联网医院系统的建设过程中,选择合适的云平台和医院平台源码是至关重要的。 首先,开源…

LVM逻辑卷管理

目录一、LVM简介1、逻辑卷管理磁盘的优点2、缺陷3、LVM概述图二、LVM的使用1、创建逻辑卷2、使用逻辑卷3、删除逻辑卷4、LVM扩容5、LVM缩容三、Snapshot(快照功能)1、LVM-snapshot简介2、利用snapshot做备份(LV快照)四、LVM数据迁…

整型在内存中的存储

在计算机底层,所有数据最终都会被表示为二进制形式。整型也不例外。本文将介绍在C语言中如何定义和操作整型变量,并解释整型在内存中的存储方式。 整型变量的定义和使用 在C语言中,可以用int关键字来定义一个整数型变量。例如: …

ChatGPT们接踵而至,AI会彻底改变我们的工作方式吗?

2023年开年,AI成为了舞台上聚光灯下的主角,AI 浪潮不仅让我们对人工智能的能力有了一次全新的理解,而且所有人的工作和生活都将受到不同程度的影响。 ChatGPT、Notion AI、New Bing、GPT-4、MidJourney v5、office copilot、Adobe Firefly、…

解决方案:炼丹师养成计划 Pytorch如何进行断点续训——DFGAN断点续训实操

我们在训练模型的时候经常会出现各种问题导致训练中断,比方说断电、系统中断、内存溢出、断连、硬件故障、地震火灾等之类的导致电脑系统关闭,从而将模型训练中断。 所以在实际运行当中,我们经常需要每100轮epoch或者每50轮epoch要保存训练好…

Python实现哈里斯鹰优化算法(HHO)优化卷积神经网络分类模型(CNN分类算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 2019年Heidari等人提出哈里斯鹰优化算法(Harris Hawk Optimization, HHO),该算法有较强的全…

DAY 43 Apache的配置与应用

虚拟Web主机 概述 虚拟web主机指的是在同一台服务器中运行多个web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为"虚拟"web主机。通过虚拟web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本…

TensorFlow 决策森林详细介绍和使用说明

使用TensorFlow训练、调优、评估、解释和部署基于树的模型的完整教程 两年前TensorFlow (TF)团队开源了一个库来训练基于树的模型,称为TensorFlow决策森林(TFDF)。经过了2年的测试,他们在上个月终于宣布这个包已经准备好发布了,也就是说我们…