QSettings在C++中看起来是一个很好的东西,它本质上是一个灵活的哈希表,其中的键是字符串,值是q变体,所以它可以是几种类型。然而,在Python中我们已经有了这个,它是一个字典。所以我问,在PyQt中使用QSettings比使用dict有什么优势?在
编辑: 更简洁地说,我使用QSettings对象为特定键指定特定设置的每一行,我都可以用字典做同样的事情。是的,QSettings有一些细节,比如转换成ini文件,但是我可以用相同的代码行数用json模块存储dict-to-file。就QSettings提供的功能而言,我试图理解为什么人们会使用它而不是仅仅使用dict和json模块。我已经仔细阅读了文档以了解QSettings提供的功能,但没有什么能让我觉得是一个非常好的特性,所以我基本上是在问,你认为QSettings最有益的特性是什么?为什么它比使用dict+json模块更优越
从Documentation
因此它实际上不仅仅是一个基本的
dict
对象,它处理与在重新启动之间保存应用程序状态相关的常见任务。它实现了许多方便的methods来实现这一点。在< St>^{} 不是容器,所以在Python中它不等同于字典。< /罢工>类似于Qt/C++中的字典的东西可能是^{} (显然它的局限性)。在
^{} 是一个允许您永久保存信息的类,也就是说,当应用程序重新打开时,甚至可以访问这些信息,而字典在关闭应用程序时会丢失保存的信息。在
例如,让我们使用以下示例并运行它几次:
字典:
输出:
^{pr2}$q设置:
输出:
在第一种情况下,它不考虑程序先前的执行,但在第二种情况下,它考虑到了。在
总之,QSettings允许您保存应用程序再次运行时可以使用的信息,例如保存会话、权限等
此外,QSettings是一个抽象层,在多个平台上实现了前面的功能。在
根据您所指出的版本,我想您应该将QSettings与dict+json模块进行比较。在
好吧,选择取决于用户,但以下内容可以帮助您选择:
因此,在所有QSettings的末尾都有一个选项,在Qt世界中是唯一的,但在Python世界中不是唯一的,因为还有其他类似于^{} (YAML)、^{} (INI)、^{} (XML)等
相关问题 更多 >
编程相关推荐