QSettingsを使用すると、すべてのアプリケーションデータを保存できます。 QPixmap
、QPoint
、QColor
などのデータタイプを自動的に変換します。デフォルトでは、設定はplatform-independant wayに保存されますが、必要に応じてカスタムの場所に保存することもできます。ここで
はあなたItem
クラスを書く/読むことができる方法です:
def settings(self):
# use a custom location
return QtCore.QSettings('app.conf', QtCore.QSettings.IniFormat)
def readSettings(self):
self.items = []
settings = self.settings()
for index in range(settings.beginReadArray('items')):
settings.setArrayIndex(index)
self.items.append(Item(
settings.value('number', -1, int),
settings.value('pixmap', None, QtGui.QPixmap),
settings.value('point', None, QtCore.QPoint),
settings.value('designation', '', str),
))
def writeSettings(self):
settings = self.settings()
settings.beginWriteArray('items')
for index, item in enumerate(self.items):
settings.setArrayIndex(index)
settings.setValue('number', item.item_nbr)
settings.setValue('pixmap', item.crop_pixmap)
settings.setValue('point', item.origin_point)
settings.setValue('designation', item.designation)
settings.endArray()
QSettings.value()
のPyQtはバージョンがデフォルト値と値の予想されるタイプの両方を指定することができます。
QPixmap独自の '__setstate__'メソッドと' __getstate__'メソッドを定義する必要があります。 [doc](https://docs.python.org/2/library/pickle.html#object.__getstate__)を読んでください。 – RedEyed