이 페이지에서

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 유형

JavaScript 객체와 배열은 QML 엔진에서 지원됩니다. 모든 표준 JavaScript 유형은 일반 var 유형을 사용하여 생성 및 저장할 수 있습니다.

예를 들어 아래와 같이 표준 DateArray 유형을 사용할 수 있습니다:

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.