python-是否可以腌制QSettings对象?

我意识到这听起来非常多余,因为pickle和QSettings基本上实现了同一件事,但是让我解释一下.

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

要保存布局列表,我想腌制一个格式为{‘layoutName’:qSettingsFile,’anotherName’:anotherFile}的字典,但是当我尝试腌制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-模拟pyqt中的鼠标移动


下一篇:python-用pyuic将.ui转换为.py?