def saveSettings(self):
settings = {}
for child in self.settingsParent.children():
name = child.objectName()
if not name:
continue
if isinstance(child, QtGui.QCheckBox):
settings[name] = child.isChecked()
elif isinstance(child, QtGui.QComboBox):
settings[name] = child.currentIndex()
...
return settings
def restoreSettings(self, settings):
for child in self.settingsParent.children():
name = child.objectName()
if name not in settings:
continue
if isinstance(child, QtGui.QCheckBox):
child.setChecked(settings[name])
elif isinstance(child, QtGui.QComboBox):
child.setCurrentIndex(settings[name])
...
所有树小部件项都有一个setData方法,可以用来存储关联的值,在本例中,该方法将是一个包含设置的
dict
。在为了使保存和恢复设置更容易,最好确保所有的复选框、组合框等都有一个共同的父对象,并且它们都被赋予一个唯一的
objectName
。这样,就可以很容易地对它们进行迭代:要将设置添加到树小部件项,只需执行以下操作:
^{pr2}$要找回它们,请执行以下操作:
但是请注意,如果您使用python2,您可能需要在这里采取额外的步骤,因为
data
将返回QVariant
,而不是dict
。如果是这样,要获得dict
,则需要执行以下操作:或者,您可以在任何地方删除
QVariant
,但将此放在程序的开头:相关问题 更多 >
编程相关推荐