2

QSettingでdictを保存しました。ロードすると、QVariantが表示されます。

>>dict
{u'key1': u'val1', u'key2': u'val2',....}
...
>>loadedDict
<PyQt4.QtCore.QVariant object at 0x02B11848>

それを再びdictに変換して、このように再び使用できるようにする方法:

>>dict['key2']
val2
4

1 に答える 1

3

dictを文字列に変換し、eval(str)を実行した後、dictに戻すことができます。

pydict  = {'key1': 'val1', 'key2': 'val2'}
variant = QtCore.QVariant( pydict )
...
pydict = eval( str( variant.toString() ) )
print pydict
>>> {'key1': 'val1', 'key2': 'val2'}

キーまたは値の1つを文字列からdictに変換できない場合、evalが失敗する可能性があることに注意してください。これは、組み込み型(str、int、list ..)がない場合に発生する可能性がありますが、この場合は問題なく機能します。

于 2013-06-14T01:15:32.813 に答える