嗯,我认为我很聪明地用(Python)字典管理我的 PyQt 设置。这样,我认为我至少可以迭代设置以进行保存和比较。
但是在使用布尔值时我遇到了问题。
我有一个方法
def changed(self):
s = QSettings()
for key in self._options:
#print key, self._options[key], s.value(key)
if self._options[key] != s.value(key):
return True
return False
只要 s 中没有任何布尔值,它就可以工作。
如果字典中有布尔值,该函数总是返回 True。
取消注释该print
行会显示问题并导致
hasDefault True true
所以问题是:true
QSettings 返回的这个小写字母是什么,我怎样才能让 Python 正确地将它与布尔值进行比较?
我读到你应该用它toBool()
来弥补不同平台上的不同表示。但我不知道如何在这样的循环中做到这一点(即事先不知道要比较什么类型)。
任何提示或解决方案表示赞赏!