gpt4 book ai didi

python - 是否可以 pickle QSettings 对象?

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:51 24 4
gpt4 key购买 nike

我意识到这听起来非常多余,因为 pickle 和 QSettings 基本上实现了相同的目的,但让我解释一下。

我有一个由可以停靠、调整大小或以其他方式修改的小部件组成的程序。用户希望能够将各种状态保存为布局并在这些布局之间进行更改。布局保存为 QSettings 文件。

为了保存布局列表,我想 pickle 格式为 {'layoutName':qSettingsFile, 'anotherName':anotherFile} 的字典,但是当我尝试 pickle QSettings 文件时,我获取 TypeError:sip.wrapper 类型无法实例化或子类化

有没有办法让它工作?我可以将 QSettings 文件的内容放入字典中而忘记 QSettings,但我希望有一种更简单/更短的方法。

最佳答案

使用一个设置文件,并为每个布局创建单独的组。

QSettings syntax支持分层键,所以只需使用 beginGroupendGroup创建命名布局部分:

settings.beginGroup('layouts')
settings.beginGroup('layoutname1')
# set various layout values...
settings.endGroup()
settings.beginGroup('layoutname2')
# set various layout values...
settings.endGroup()
settings.endGroup()

这将输出如下所示的文件:

layouts/layoutname1/value1=true
layouts/layoutname1/value2=true
...
layouts/layoutname2/value1=false
layouts/layoutname2/value2=false
...

或者,您可以使用 QSettings arrays创建布局的索引列表。

关于python - 是否可以 pickle QSettings 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13729189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com