이 페이지에서

QML 유형 시스템

QML 문서에서 객체 계층 구조를 정의하는 데 사용될 수 있는 유형은 다양한 출처에서 비롯될 수 있습니다. 이러한 유형은 다음과 같습니다:

  • QML 언어에서 기본적으로 제공하는 것
  • QML 모듈을 통해 C++로 등록된 것
  • QML 모듈에 의해 QML 문서로 제공되는 것

또한, 애플리케이션 개발자는 C++ 타입을 직접 등록하거나, QML 문서에서 재사용 가능한 컴포넌트를 정의하여 이를 가져오는 방식으로 자체 타입을 제공할 수 있습니다.

유형 정의의 출처에 관계없이, 엔진은 해당 유형의 속성과 인스턴스에 대해 유형 안전성을 보장합니다.

QML 객체 유형

QML 객체 유형은 QML 객체를 인스턴스화할 수 있는 유형입니다. QML 객체 유형은 ` QtObject`에서 파생되며, QML 모듈에 의해 제공됩니다. 애플리케이션은 이러한 모듈을 임포트하여 해당 모듈이 제공하는 객체 유형을 사용할 수 있습니다. ` QtQuick ` 모듈은 QML에서 사용자 인터페이스를 만드는 데 필요한 가장 일반적인 객체 유형을 제공합니다.

마지막으로, 모든 QML 문서는 암시적으로 QML 객체 유형을 정의하며, 이는 다른 QML 문서에서 재사용될 수 있습니다. 객체 유형에 대한 자세한 내용은 QML 유형 시스템의 객체 유형 관련 문서를 참조하십시오.

QML 값 유형

QML 언어는 정수, 배정밀도 부동 소수점 숫자, 문자열, 부울 값을 포함한 다양한 기본 유형을 기본적으로 지원합니다. 객체는 이러한 유형의 속성을 가질 수 있으며, 이러한 유형의 값은 객체의 메서드에 인자로 전달될 수 있습니다.

값 유형에 대한 자세한 내용은 QML 값 유형 문서를 참조하십시오.

QML 시퀀스 유형

시퀀스 유형은 값이나 객체의 시퀀스를 저장하는 데 사용할 수 있습니다.

시퀀스 유형에 대한 자세한 내용은 QML 유형 시스템의 시퀀스 유형 문서를 참조하십시오.

열거형

열거형은 QML에서 유형의 특수한 속성으로 취급됩니다.

열거형에 대한 자세한 내용은 QML 열거형 문서를 참조하십시오.

싱글톤 유형

QML은 각 QML 엔진에 단 하나의 인스턴스만 존재하는 유형을 정의할 수 있는 싱글톤 유형을 지원합니다. 싱글톤 유형은 애플리케이션 전체에 적용되는 상태나 기능을 제공하는 데 유용합니다.

자세한 내용은 QML의 싱글톤을 참조하십시오.

부착형 타입

부착 속성 및 신호 핸들러를 사용하면 유형이 다른 객체에 부착될 수 있는 추가 속성과 신호를 제공할 수 있습니다. 이는 QML 객체에 컨텍스트 정보를 추가하는 강력한 메커니즘입니다.

자세한 내용은 ‘QML 부착형 타입’을 참조하십시오.

QML 네임스페이스

QML 네임스페이스를 사용하면 C++ 네임스페이스의 열거형을 노출할 수 있습니다.

네임스페이스에 대한 심층적인 정보는 QML 타입 시스템의 네임스페이스 관련 문서를 참조하십시오.

JavaScript 유형

QML 엔진은 JavaScript 객체와 배열을 지원합니다. 범용 var 유형을 사용하여 모든 표준 JavaScript 유형을 생성하고 저장할 수 있습니다.

예를 들어, 아래와 같이 표준 ` Date ` 및 ` Array ` 유형을 사용할 수 있습니다:

import QtQuick

Item {
    property var theArray: []
    property var theDate: new Date()

    Component.onCompleted: {
        for (var i = 0; i < 10; i++)
            theArray.push("Item " + i)
        console.log("There are", theArray.length, "items in the array")
        console.log("The time is", theDate.toUTCString())
    }
}

자세한 내용은 QML 문서의 JavaScript 표현식을 참조하십시오.

C++ 통합

QML과 C++ 간의 데이터 유형 변환

QML과 C++을 통합할 때, 두 환경 간에 데이터를 전송해야 하는 경우가 많습니다. QML 엔진은 일반적인 데이터 유형에 대해 QML과 C++ 유형 간의 자동 변환을 제공하지만, 사용자 정의 유형의 경우 명시적인 등록이 필요합니다.

자세한 내용은 ‘QML과 C++ 간의 데이터 유형 변환’을 참조하십시오.

C++에서 QML 객체와 상호 작용하기

C++ 코드는 QML 엔진으로부터 QML 객체에 대한 참조를 얻어 해당 객체에 접근하고 조작할 수 있습니다. 이를 통해 C++ 코드는 QML 객체의 속성을 읽고 쓰며, 메서드를 호출하고, 신호에 연결할 수 있습니다.

자세한 내용은 ‘C++에서 QML 객체와 상호작용하기’를 참조하십시오.

C++에서 JavaScript 값과의 통합

QML 엔진은 ` QJSValue ` 및 관련 클래스를 사용하여 JavaScript 값을 표현하며, 이를 통해 C++ 코드는 JavaScript 객체, 함수 및 기본형 값을 다룰 수 있습니다. 이를 통해 C++과 JavaScript 코드 간의 원활한 통합이 가능합니다.

자세한 내용은 ‘C++에서 JavaScript 값과 통합하기’를 참조하십시오.

컨텍스트 속성을 사용하여 QML에 C++ 객체 삽입

컨텍스트 속성은 사용하지 않는 것이 좋습니다. 자세한 내용은 ‘컨텍스트 속성을 사용하여 QML에 C++ 객체 삽입’을 참조하십시오.

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