Hm, je pensais que j'étais intelligent pour gérer mes paramètres PyQt avec un dictionnaire (Python). De cette façon, j'ai pensé que je pourrais itérer sur les paramètres au moins pour enregistrer et comparer.itérer sur le dictionnaire des paramètres avec Qsettings avec des valeurs booléennes
Mais j'ai rencontré des problèmes lors de l'utilisation de valeurs booléennes.
J'ai une méthode
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
Cela fonctionne tant qu'il n'y a pas de valeurs booléennes dans s.
S'il existe une valeur booléenne dans le dictionnaire, la fonction renvoie toujours la valeur True.
la ligne print
Enlever les commentaires montre la question et les résultats dans
hasDefault True true
La question est donc: quel est ce minuscule true
qui QSettings les retours, et comment puis-je obtenir Python pour comparer cela correctement à un booléen?
J'ai lu que vous devriez utiliser toBool()
pour compenser différentes représentations sur différentes plateformes. Mais je ne vois pas comment je peux faire ceci dans une telle boucle (c'est-à-dire ne sachant pas à l'avance quel type il y a à comparer).
Tout conseil ou solution apprécié!