이 페이지에서

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으로 지정된 기본 크기를 갖게 됩니다. 기본 위치는 지정되지 않았다는 점에 유의하십시오. 이 부분은 윈도우 관리자가 처리하도록 맡겼습니다. 나중에 창 크기가 변경되면 새로운 값이 영구 설정에 자동으로 저장됩니다. 애플리케이션을 두 번째로 실행하면 영구 설정에서 초기 값을 가져와 창을 이전 위치와 크기로 복원합니다.

속성 별칭을 사용하여 구현된 완전한 선언적 구문은, 별칭이 지정된 속성의 값이 변경될 때마다 영구 설정을 저장해야 한다는 단점이 있습니다. 일반 속성을 사용하면 영구 설정 저장에 대해 더 세밀한 제어가 가능합니다. 다음 예제는 컴포넌트 소멸 시 설정을 저장하는 방법을 보여줍니다.

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.