私は現在PySideにアプリケーションを書いていますが、終了時にウィンドウの寸法を保存します。 geometry()
メソッドはPySide.QtCore.QRect(300, 300, 550, 150)
のようなものを返しますが、私が望むのは(300, 300, 550, 150)
です。私はそれを解析する方法を見つけることができたが、私はよりクリーンな方法が欲しい。助言がありますか?PySideのリストとしてgeometry()の内容を返します
1
A
答えて
3
構文解析なしで、よりクリーンな方法は、QSettings
を使用して、ネイティブアプリケーション設定ストレージ(Windowsレジストリ、.iniファイル、.plistファイル...)にジオメトリから返されたQRect
を格納して取得することです。例えば
:
settings = QSettings(...);
settings.setValue("lastGeometry", self.geometry())
# and to retrieve the value
lastGeometry = settings.value("lastGeometry")
if lastGeometry.isValid():
self.setGeometry(lastGeometry)
あなたもできるバイナリシリアライズまたは4の32ビット整数を表す16バイト配列にQDataStream
とQRect
をデシリアライズ。
4
1
が、これは面白いかもしれません@alexisdmから1を受け入れたOPを考えます画面のウィンドウと上端から外れているもの。しかしはQByteArrayのを必要とし、私の場合は単純なPythonデータしか保存できません。だから私は文字列にバイト配列を有効にしようとしました:
encoded = str(self.saveGeometry().toPercentEncoding())
print('encoded: %s' % encoded)
>>> encoded: %01%D9%D0%CB%00%01%00%00%FF%F...
geometry = QtCore.QByteArray().fromPercentEncoding(encoded)
self.restoreGeometry(geometry)
Voilà!
関連する問題
- 1. 文字列の内容をレコードセットとして返します
- 2. fancyboxギャラリーの渡し要素の内容を配列として返します
- 3. QTreeviewのトップセレクションを返すPyside
- 4. オブジェクトタグをリストとして返します
- 5. Djangoはテンプレートの中のリストの内容を表示します
- 6. セルをダブルクリックして別のセル(VBA)にセルの内容を返します
- 7. python3リスト内のすべての変数を返します
- 8. jqueryの要素のタグANDの内容を返します。
- 9. ファイルの内容をPythonのパラメータとして渡します。
- 10. localhost上のテキストファイルの内容を返します
- 11. javascriptを使用してPHPの内容を返す方法$ .get
- 12. 繰り返しごとにArraylistの内容を更新する
- 13. logstash - 動的リストにフィールドの内容を格納します。
- 14. Oracleエクスポート・ダンプ・ファイルの内容をリスト表示します。
- 15. 変数の内容としてR.id.contentを保存します。Android
- 16. NSTextViewの内容を平文ファイルとして保存します
- 17. C#リストの更新としてフォームの内容を更新する
- 18. Pyside:空のリストにドラッグ&ドロップしますか?
- 19. ファイルのリストを繰り返し、その内容を抽出しますか? (SparkContextエラー)
- 20. pycharm os.listdirは内容をリストしていません
- 21. 内部の内容がdivを返す
- 22. URLのリンターは「206部分的な内容」を返します
- 23. ローカルPHPファイルの内容を返します。
- 24. 画像の内容をScrapy-Splashで返します
- 25. 折り返しリスト内の折り返しリスト
- 26. RJDBCはAthenaでテーブル名を返しますが、内容は返しません
- 27. bs4は変数名を返しますが、内容は返しません
- 28. リストの内容をマークアップで変数として補間する方法は?
- 29. SingleOrDefaultは現在のデータベースの内容を返しません
- 30. ボタンをクリックするとリストの内容がリロードされます
私はこのアプリケーションをクロスプラットフォームにしようとしていますが、主にLinux上で動作する必要があります。これはまだ実行可能ですか?これはgetRect()から返されたタプルをテキストファイルに保存するよりも利点がありますか? – Sotanaht
主な利点は、 'applicationName'と' organizationName'プロパティを 'QApplication'オブジェクトに設定すると、あなたの設定は自動的に[プラットフォーム標準の場所]に保存されます(http://qt-project.org/ doc/qt-4.8/qsettings.html#locations-where-application-settings-are-stored)を使用しているため、その部分にプラットフォーム固有のコードを書く必要はありません。また、複数のプロセスからの安全性、同時アクセスを入力し、[QVariant'でサポートされているQt値の型](http://qt-project.org/doc/qt-4.8/qvariant.html#タイプ - 列挙型)。 – alexisdm
私は実際に代わりにこれを使うかもしれないと思います。現在、ConfigParserはタプルを文字列として読み込むため、タプルの各数値を個別の変数として格納する必要があります。 – Sotanaht