美文网首页
Qt数据存储(二)

Qt数据存储(二)

作者: 秋冬不寒 | 来源:发表于2022-05-16 17:26 被阅读0次

    Qt 中的 XML 支持

    Qt 提供 API 来读取和解析 XML 流,以及写入这些流。以下关键类通过提供必要的基础设施来促进这些行动:

    • QXmlStreamReader类提供了一个解析器来读取 XML。它是一个格式良好的 XML 1.0 解析器,不包括外部解析实体。
      • 它理解并解析 XML 命名空间。例如,对于 StartElement,namespaceUri() 返回元素所在的命名空间,name () 返回元素的本地名称。namespaceUri() 和name () 的组合唯一地标识一个元素。
      • 它不是 CPU 密集型的,因为它不会将整个 XML 文档树存储在内存中。它仅在报告时存储当前令牌。
    • QXmlStreamWriter类为 XML 编写器提供了一个简单的流 API。它是用于编写 XML的QXmlStreamReader的对应物,它在setDevice () 指定的 QIODevice 上运行。
      • 它是一个简单的 API,为您要编写的每个 XML 令牌或事件提供专用函数。
      • 它负责根据在编写元素或属性时指定的 namespaceUri 为命名空间添加前缀。如果您必须使用某些标准化前缀,您可以通过使用 writeNamespace() 或 writeDefaultNamespace() 手动声明命名空间来强制编写器使用它们。
      • 它可以通过添加换行和缩进来自动格式化生成的 XML 数据,使其具有可读性。可以使用自动格式化属性打开此功能。
      • 默认情况下,它以 UTF-8 编码 XML。可以使用 setCodec() 强制执行不同的编码。

    除了读写 XML 流,Qt 还为以下附加用例提供 API:

    • 使用XQuery和 XPath查询 XML 数据源
    • 使用 XSLT 进行 XML 转换
    • XML 模式验证

    以下主题提供了对 Qt XML 支持的更多见解:

    Qt 中的 JSON

    JSON 是一种基于文本的数据交换开放标准,易于阅读和解析。它用于表示简单的数据结构和关联数组,称为对象。它与 JavaScript 相关,但是是一种独立于语言的符号形式。

    一个对象可以有两种形式:

    • 名称/值对的集合
    • 有序值列表
      { “last_name”:“Routledge”,“first_name”:“Ronald”,“birth_date”:1960 }
       "colours": ["green", "blue", "yellow"]
    

    本地存储

    Local Storage API 提供了从 QML 和 JavaScript 访问 SQL 数据库中本地离线存储的能力。

    这些数据库是特定于用户和特定于 QML 的,但可供所有 QML 应用程序访问。它们作为SQLite数据库(SQL 数据库驱动程序)存储在 QDeclarativeEngine::offlineStoragePath() 的 Databases 子目录中。

    该 API 符合 HTML5 Web 数据库 API 的同步 API,W3C 工作草案 2009 年 10 月 29 日(HTML5 Web 数据库 API)。

    有关使用本地存储 API 的基本演示,请参阅Qt 快速示例 - 本地存储

    QSettings 类

    QSettings类提供应用程序设置的持久存储。应用程序通常会记住上一个会话的设置。

    设置在不同平台上的存储方式不同。例如,在 Windows 上,它们存储在注册表中,而在 macOS 上,它们存储在 XML 文件中。

    QSettings使您能够以便携的方式保存和恢复应用程序设置。构造和销毁QSettings对象是轻量级和快速的。在创建QSettings的对象时,最好不仅指定应用程序的名称,还指定组织的名称。例如:

    QSettings settings("MyCompany", "Accountancy");
    

    资源

    Qt 资源系统是一种独立于平台的机制,用于在应用程序的可执行文件中存储二进制文件。如果您的应用程序经常需要某个文件或一组文件,这将非常方便。它还可以防止该特定文件丢失。

    资源数据既可以编译成二进制并在应用程序代码中立即访问,也可以动态创建二进制资源并由应用程序向资源系统注册。

    默认情况下,应用程序代码可以通过与存储在源树中相同的文件名: /prefix或带有 qrc 方案的 URL 访问资源。

    档案归档

    存档文件是通常压缩的文件或目录的集合,以减少它们在驱动器上消耗的空间。存档文件的示例有 ZIP、TAR、RAR 和 7z。

    Qt 支持由 zlib 生成的档案(参见qCompress() 和 qUncompress())。

    相关文章

      网友评论

          本文标题:Qt数据存储(二)

          本文链接:https://www.haomeiwen.com/subject/nycvurtx.html