[python] PySideのUI情報を保存する [pyside]

最近仕事やらプライベートやら(主に旅行)が忙しくて久しぶりの更新ネタはPySideの
UIを表示したときに、以前の状態を復帰する方法について。

今まではjsonやらを駆使してがんばって書いてたのですが、色々とめんどくい。
良い方法はないかなぁ、UIのツールなんだからデフォルトで保存ぐらいあんだろ!と思って調べたら見つかったのでまとめをば。

とりあえずコード

UIファイルは → これ

TextEditが置いてあるだけです。

UIの情報を保存するには QSettings を使用します。
その名の通り、設定を保存してくれるクラスなのですが
デフォルトだとレジストリに書き込んでしまうので、今回はiniに書き出しする形式で使用しています。

使い方は簡単で、クラスオブジェクトを作って、保存したい内容を setValue(名前,値)とすれば良いだけ。
やばい超簡単。

さらにこのクラスの良いところは、型の制限がないところ。
バイナリだろうが、Rectだろうが、StringだろうがIntだろうが、setValueすればイイカンジに保存してくれます。
自力でがんばってた場合は、設定がすでにあるかをチェックして値を呼び出すとかしないといけませんが
Settingを使用すると、なければないでよしなに計らってくれるので親切ですね。

今回のサンプルでは、TextEditの値とUIの位置情報を保存&復帰するようにしてみました。
これでいろいろと捗りそう
むしろ今更すぎるかもしれない(汁

少し悩んだのが、restoreGeomteryとrestoreState。
これはQMainWindowにはあるけどQDialogにはないものなので注意が必要です。

参考サイト

Qt ウィンドウ位置サイズ、チェックボックスの状態保存
http://pido.seesaa.net/article/183717126.html

コメントを残す

メールアドレスが公開されることはありません。


*