Settings QML Type
プラットフォームに依存しない永続的なアプリケーション設定を提供します。詳細...
Import Statement: | import Qt.labs.settings 1.0 |
Status: | Deprecated since 6.5 |
この型はQt.labs.settings 6.5から非推奨となりました。新しいコードでは使用しないことを強くお勧めします。
プロパティ
方法
- setValue(string key, var value)
(since Qt 5.12)
- sync()
- var value(string key, var defaultValue)
(since Qt 5.12)
詳細説明
代わりにQt Qml Core のSettings を使用してください。
Settingsタイプは、プラットフォームに依存しない永続的なアプリケーション設定を提供します。
注意: この型は、Qt.labs.settingsモジュールをインポートすることで利用可能になります。Qt.labs.settingsモジュールの型は、将来のバージョンでも互換性が保たれる保証はありません。
ユーザは通常、アプリケーションの設定(ウィンドウのサイズや位置、オプションなど)をセッションをまたいで記憶することを期待します。Settings型は、そのようなアプリケーションの設定を、最小限の労力で保存・復元することを可能にします。
個々の設定値は、Settings要素内でプロパティを宣言することで指定します。すべての値型プロパティがサポートされています。推奨されるアプローチは、プロパティの自動更新を双方向で得るために、プロパティのエイリアスを使用することです。次の例では、Settingsを使用してウィンドウのジオメトリを保存および復元する方法を示します。
import QtQuick.Window import Qt.labs.settings Window { id: window width: 800 height: 600 Settings { property alias x: window.x property alias y: window.y property alias width: window.width property alias height: window.height } }
最初のアプリケーション起動時に、ウィンドウはデフォルトの寸法として800x600が指定されます。デフォルトの位置が指定されていないことに注意してください。後でウィンドウのジオメトリが変更されると、新しい値が自動的に永続設定に保存されます。2回目のアプリケーション実行では、永続的な設定から初期値を取得し、ウィンドウを以前の位置とサイズに戻す。
完全に宣言的な構文は、プロパティ・エイリアスを使用することによって実現されますが、エイリアスされたプロパティの値が変更されるたびに永続的な設定を保存するという代償を伴います。通常のプロパティを使用することで、永続的な設定の保存をより細かく制御することができます。次の例は、コンポーネントの破棄時に設定を保存する方法を示しています。
import QtQuick import Qt.labs.settings Item { id: page state: settings.state states: [ State { name: "active" // ... }, State { name: "inactive" // ... } ] Settings { id: settings property string state: "active" } Component.onDestruction: { settings.state = page.state } }
デフォルト値が永続設定プロパティで指定され、永続設定から初期値を取得するために実際のプロパティが設定にバインドされていることに注意してください。
アプリケーション識別子
アプリケーション固有の設定は、アプリケーションname 、organization 、domain を提供するか、fileName を指定することで識別されます。
#include <QGuiApplication> #include <QQmlApplicationEngine> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); app.setOrganizationName("Some Company"); app.setOrganizationDomain("somecompany.com"); app.setApplicationName("Amazing Application"); QQmlApplicationEngine engine("main.qml"); return app.exec(); }
これらは通常C++のmain()
の冒頭で指定されますが、QMLでは以下のプロパティで制御することもできます:
カテゴリー
アプリケーションの設定は、category プロパティでカテゴリ名を指定することで、論理的なカテゴリに分けることができます。論理カテゴリを使用すると、設定構造がすっきりするだけでなく、設定キー間の競合の可能性も防ぐことができます。
複数のカテゴリーが必要な場合は、それぞれ独自のカテゴリーを持つ複数のSettingsオブジェクトを使用してください:
Item { id: panel visible: true Settings { category: "OutputPanel" property alias visible: panel.visible // ... } Settings { category: "General" property alias fontSize: fontSizeSpinBox.value // ... } }
アプリケーション内のすべての設定が一意の名前を持つようにする代わりに、設定を一意のカテゴリに分割することができます。
注意事項
現在の実装はQSettings に基づいています。このため、変更通知の欠落など、特定の制限があります。Settingsの1つのインスタンスを使用して設定値を書き込んでも、同じカテゴリの同じ設定を参照していても、別のSettingsインスタンスの値は更新されません。
この情報は、Windowsではシステムレジストリに、macOSではXML環境設定ファイルに保存されます。その他のUnixシステムでは、標準がないためINIテキストファイルが使用されます。詳しくはQSettings のドキュメントを参照。
Settings とQSettingsも参照して ください。
プロパティ ドキュメント
category : string |
このプロパティは、設定カテゴリの名前を保持します。
カテゴリは、関連する設定をグループ化するために使用できます。
fileName : string |
このプロパティは、設定ファイルへのパスを保持します。ファイルがまだ存在しない場合は、作成されます。
このプロパティは Qt 5.12 で導入されました。
QSettings::fileName およびQSettings::IniFormatも参照して ください。
メソッドのドキュメント
key の設定値をvalue に設定します。キーが既に存在する場合、以前の値は上書きされます。
このメソッドは Qt 5.12 で導入されました。
value() およびQSettings::setValueも参照してください 。
sync() |
保存されていない変更を永久記憶装置に書き込み、その間に他のアプリケーションによって変更された設定を再読み込みします。
この関数はQSettings のデストラクタやイベントループから一定間隔で自動的に呼び出されるので、通常は自分で呼び出す必要はありません。
QSettings::syncも参照して ください。
key の設定値を返す。設定が存在しない場合は、defaultValue を返します。
このメソッドはQt 5.12で導入されました。
setValue() およびQSettings::valueも参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.