このページでは

Settings QML Type

プラットフォームに依存しない永続的なアプリケーション設定を提供します。詳細...

Import Statement: import Qt.labs.settings 1.0
Status: Deprecated since 6.5

この型は Qt.labs.settings 6.5 以降、非推奨となっています。新しいコードでの使用は強く推奨しません。

プロパティ

方法

  • void setValue(string key, var value) (since Qt 5.12)
  • void sync()
  • var value(string key, var defaultValue) (since Qt 5.12)

詳細説明

代わりに、Qt Qml Core の `Settings ` を使用してください。

`Settings` 型は、永続的でプラットフォームに依存しないアプリケーション設定を提供します。

注:この型は 、Qt.labs.settingsモジュールをインポートすることで利用可能になります。Qt.labs モジュール内の型は、将来のバージョンでも互換性が維持されるとは限りません。

通常、ユーザーはアプリケーションがセッションを超えて設定(ウィンドウのサイズや位置、オプションなど)を記憶していることを期待します。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` インスタンスで設定値を書き込んだ場合、たとえ同じカテゴリ内の同じ設定を参照しているとしても、別の `Settings` インスタンスの値は更新されません。

情報は、Windows ではシステムレジストリに、macOS では XML 形式の環境設定ファイルに保存されます。その他の Unix システムでは、標準規格が存在しないため、INI 形式のテキストファイルが使用されます。詳細については、QSettings のドキュメントを参照してください。

Settings およびQSettingsも参照してください 。

プロパティのドキュメント

category : string

このプロパティには、設定カテゴリの名前が格納されます。

カテゴリを使用すると、関連する設定をまとめてグループ化することができます。

fileName : string [since Qt 5.12]

このプロパティには、設定ファイルへのパスが格納されます。ファイルがまだ存在しない場合は、作成されます。

このプロパティは Qt 5.12 で導入されました。

関連項目: QSettings::fileName およびQSettings::IniFormat 。

メソッドのドキュメント

[since Qt 5.12] void setValue(string key, var value)

key の設定値をvalue に設定します。キーがすでに存在する場合、以前の値は上書きされます。

このメソッドは Qt 5.12 で導入されました。

value() およびQSettings::setValueも参照してください 。

void sync()

保存されていない変更を永続ストレージに書き込み、その間に別のアプリケーションによって変更された設定を再読み込みします。

この関数は、QSettings のデストラクタから自動的に呼び出されるほか、イベントループによって一定間隔で呼び出されるため、通常は自分で呼び出す必要はありません。

QSettings::syncも参照してください 。

[since Qt 5.12] var value(string key, var defaultValue)

key の設定値を返します。設定が存在しない場合は、defaultValue を返します。

このメソッドは Qt 5.12 で導入されました。

setValue() およびQSettings::valueも参照してください 。

© 2026 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.