以下のコードは、QSettings
オブジェクトを使用してPython data
辞書を格納しています。辞書を戻ってそれを読んだ後 はそうのようなQString
など、すべてのキーが付属しています:QSettingsでPython辞書を保存する方法
{PyQt4.QtCore.QString(u'one'): 1, PyQt4.QtCore.QString(u'two'): 2}
このような通常の文字列のキーを持つ辞書を読み取ることが可能になる場合、私は疑問に思う:
{'one': 1, 'two': 2}
コード:
from PyQt4 import QtCore, QtGui
app = QtGui.QApplication([])
settings = QtCore.QSettings('apps', 'settings')
data = {'one': 1, 'two': 2}
settings.setValue('data', data)
data = settings.value('data').toPyObject()
print data
Python 2でこれを行うことが可能であるあなたがする必要があるのは、使用ある[sip.setapi](http://pyqt.sourceforge.net /Docs/PyQt4/incompatible_apis.html)を使って、Python 3と同じ動作をさせてください。なぜ誰かがそれらの厄介な 'QString'と' QVariant'型をコードに入れたいのか分かりません。 'str()'で変換することはPython 2でもバグです。デコード/エンコードエラーを避けるために変換を行うには常に 'unicode()'を使うべきです。 – ekhumoro