首页 > 解决方案 > QSettings 与仅使用字典相比有什么优势?

问题描述

QSettings 在 C++ 中似乎是一个很棒的东西,它本质上是一个灵活的哈希表,其中键是字符串,值是 QVariant,所以它可以是相当多的类型。然而,在 Python 中我们已经有了这个,它是一个字典。所以我问,在 PyQt 中使用 QSettings 比仅使用 dict 有什么优势?

编辑:更简洁地说,我使用 QSettings 对象将特定设置分配给特定键的每一行,我都可以用字典做同样的事情。是的,QSettings 有一些细节,比如转换为 ini 文件,但我可以使用 json 模块将 dict 存储到文件中,并且代码行数相同。例如,就 QSettings 提供的能力而言,我试图理解为什么人们会使用它而不是仅仅使用 dict 和 json 模块。我已经仔细阅读了文档以了解 QSettings 提供的东西,没有任何东西对我来说是一个非常棒的功能,所以我基本上是在问,你认为 QSettings 最有益的功能是什么,为什么它优于使用一个 dict + json 模块

标签: pythonpyqtqsettings

解决方案


文档

用户通常希望应用程序在会话中记住其设置(窗口大小和位置、选项等)。此信息通常存储在 Windows 上的系统注册表中,以及 macOS 和 iOS 上的属性列表文件中。在 Unix 系统上,在没有标准的情况下,许多应用程序(包括 KDE 应用程序)使用 INI 文本文件。

QSettings 是围绕这些技术的抽象,使您能够以可移植的方式保存和恢复应用程序设置。它还支持自定义存储格式。

QSettings 的 API 基于 QVariant ,允许您以最少的工作量保存大多数基于值的类型,例如 QString 、 QRect 和 QImage 。

所以它实际上不仅仅是一个原始dict对象,它处理与在重启之间保存应用程序状态相关的常见任务。它实现了许多方便的方法来实现这一点。


推荐阅读