Qt Quick - FileDialog文件对话框

news/2024/4/24 23:39:11/

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.2import QtQuick.Dialogs 1.0FileDialog {id: fileDialogtitle: "Please choose a file"folder: shortcuts.homeonAccepted: {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: fileDialogfolder: shortcuts.desktopnameFilters: [ "文本文件 (*.txt *.mcp)", "All files (*)" ]title: "请选择一个文件"onAccepted: {backend.filePath = fileUrl}onRejected: {fileDialog.close();}
}

在这里插入图片描述

2. 单选保存文本文件

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

FileDialog {id: saveDialogtitle: "另存文件"folder: shortcuts.desktopnameFilters: [ "文本文件 (*.txt * .mcp)", "All files (*)" ]selectExisting: falseonAccepted: {console.log(saveDialog.fileUrl)}onRejected: {}
}

在这里插入图片描述


http://www.ppmy.cn/news/47378.html

相关文章

wifi/BT芯片RTL8723DS驱动移植和测试之二蓝牙篇

目录 1、根文件系统添加库和蓝牙工具 2、内核配置 (1)自带串口驱动不可选 (2)增加RFCOMM和ble的支持 (3)User level driver support (4)HID driver 3、测试 4、报错说明 &a…

艾瑞报告:预计2023年家用智能照明市场规模过百亿,Yeelight易来引领行业发展

照明是家居的主要部分,以智能化控制技术光环境设计为核心的智能照明成为智能家居重要的子系统与子应用,智能照明通过精准的设计,将单品链接成系统,通过算法和云平台实现智能化,针对不同的空间适配不同的灯光&#xff0…

面试被经常问的SQL窗口函数

面试题 有一张“学生成绩表”,包含4个字段:班级id、学生id、课程id、成绩。 问题1: 求出每个学生成绩最高的三条记录 问题2: 找出每门课程都高于班级课程平均分的学生 技术提升 技术要学会分享、交流,不建议闭门造…

书写我的人生回忆录-这应该是给父母最好的礼物

作为一个业余的软件开发爱好者,我又捣鼓了一个有意思的小东西 ,使用完全免费哈 《书写我的人生回忆录》是一款软件,其中包含70个问题,涵盖了父母的个人喜好、家庭、工作、人生经历和态度等方面。通过回答这些问题,您的…

使用Cubic 自定义 Ubuntu Live ISO

使用Cubic 自定义 Ubuntu Live ISO 需要使用原始镜像文件,比如使用 systemback 备份系统生成的 ISO 有时候 systemback 生成的 ISO 无法启动,可以用 Cubic 修复 使用 Cubic 安装 sudo apt-add-repository ppa:cubic-wizard/release sudo apt-key ad…

java 线程唤醒于阻塞的常用方法

1.分类描述 1.sleep() 休眠2.suspend() 暂停和 resume() 继续3.yield() 让步 就是我放弃本次执行,但继续排队,下一次有机会在执行。 4.wait() 和 notify() notifyAll() 注:这两个方法,属于Object类,而不属于Thread…

启动 Ethereum(上海) 主网全节点

问题描述 采用最新的geth版本之后,按照之前的方法启动geth主网节点会出现如下问题: Post-merge network, but no beacon client seen. Please launch one to follow the chain!问题原因 The above message is emitted when Geth is run without a conse…

在Windows10中安装WSL2(Ubuntu 22.04.2 LTS)

WSL1 和 WSL2 WSL 1 于 2016 首次发布,在 windows 系统中可以使用linux系统。 但是WSL1的缺点有: 文件 I/O 慢,尤其是在大量IO操作时,例如使用 git 克隆仓库;不支持内核程序; WSL 2 针对以上两个缺点进…

Tc2xx知识点(二) :AURIX单片机基础概念记录

目录 1、概述 2、通用寄存器文件 3、Overlay 4、cache 5、英飞凌Tc275的Eray 6、内存分析(手册)

MyBatis核心配置文件详解

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><environments default"…

3.0、Java继承与多态 - 构造方法的访问特点

3.0、Java继承与多态 - 构造方法的访问特点 在继承关系中&#xff0c;父类构造方法的访问特点&#xff1a; 1、子类构造方法当中有一个默认隐含的 super(); 调用&#xff0c;所以一定是先调用父类构造&#xff0c;然后再去执行子类构造&#xff1b; 2、子类构造可以通过 supe…

中文翻译英语转换器-怎么把wps表格里的英文翻译成中文

对于那些需要频繁地进行中英互译的用户来说&#xff0c;字数限制是一个常见的问题。很多翻译软件经常会限制每次翻译的字数&#xff0c;导致用户翻译工作的效率和质量无法得到保证。如果您正在遭受这些限制&#xff0c;中英互译字数无限的软件将让您的翻译工作变得更加便捷和高…

网络原理之UDP

hi,大家好,又见面了,今天为大家介绍一下UDP的网络原理&#x1f437;&#x1f437;&#x1f437; 文章目录 认识UDP报文格式UDP特点TCP,UDP应用场景基于UDP的应用层协议 认识UDP报文格式 UDP特点 TCP,UDP应用场景 基于UDP的应用层协议 1.认识UDP报文格式 其实在真正传输…

《花雕学AI》哪种技能5年10年后还会被市场需要? 该如何提高这些能力?

随着AI人工智能、ChatGPT等新的技术革新的发展&#xff0c;未来职业场景确实会发生变化&#xff0c;一些传统的职业可能会被取代&#xff0c;而一些新的职业可能会出现。根据世界经济论坛所发布的《未来就业报告》&#xff0c;一半的劳动力需要在2025年之前完成技能重塑。那么&…

Cad二次开发过程

CAD二次开发公司的开发流程可能因公司规模、项目需求等因素而异&#xff0c;但通常会包含以下步骤&#xff1a; 需求分析&#xff1a;与客户沟通并了解客户需求&#xff0c;制定开发计划。设计阶段&#xff1a;根据需求分析结果设计软件系统架构、UI界面、功能模块等。编码实现…

MySQL基础

MySQL基础 文章目录 MySQL基础1.数据库的操作1.1 显示当前数据库1.3创建数据库1.4使用数据库1.5删除数据库 2.表的操作2.1查看表结构2.2 创建表2.3 删除表 3.新增 Create3.1 单行数据全列插入3.2多行数据指定列插入 4.查询 Select4.1全列查询4.2指定列查询4.3查询字段为表达式4…

【Java 数据结构】包装类 (通俗易懂)

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点!人生格言&#xff1a;当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔&#x1f9be;&am…

堆排序及常见面试题

⭐️前言⭐️ 本篇文章记录堆排序以及对应的一些练习。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博…

392. 判断子序列

给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;"ace"是"abcde"的一个子序列&#…

三年创作,两年偷懒,一年划水

回顾 离我写第一篇文章开始&#xff0c;不知不觉已经三年了&#xff0c;回顾写作分享之路&#xff0c;可谓是坎坷崎岖&#xff0c;当然也正因为这一路的磨难让我收获不菲。 兜兜转转三年写了很多文章&#xff0c;回顾起我的写作起点&#xff0c;尤为艰难。刚刚开始写作时&…