Qt Qml 모듈에서 제공하는 중요한 C++ 클래스
이 Qt Qml 이 모듈은 QML 프레임워크를 구현하는 C++ 클래스를 제공합니다. 클라이언트는 이러한 클래스를 사용하여 QML 런타임과 상호 작용할 수 있으며(예: 데이터 주입 또는 객체에 대한 메서드 호출), QML 문서로부터 객체 계층 구조를 인스턴스화할 수 있습니다. Qt Qml 모듈은 여기에 나열된 클래스 외에도 더 많은 C++ API를 제공하지만, 여기에 나열된 클래스들은 QML Runtime의 기초와 QML의 핵심 개념을 제공합니다.
QML Runtime
C++ 진입점을 가진 일반적인 QML 애플리케이션은 ` QQmlEngine `를 인스턴스화한 다음, ` QQmlComponent `를 사용하여 QML 문서를 로드합니다. 엔진은 기본 QQmlContext 를 제공하며, 이는 QML 문서에 정의된 함수와 표현식을 평가하는 데 사용되는 최상위 평가 컨텍스트가 됩니다. 문서 로딩 중에 오류가 발생하지 않았다고 가정할 때, QML 문서에 정의된 객체 계층 구조는 QQmlComponent 인스턴스의 create() 함수를 호출하여 인스턴스화됩니다.
클라이언트는 속성이나 객체를 컨텍스트에 주입하여 엔진에서 제공하는 ` QQmlContext `를 수정할 수 있습니다. ` QQmlEngine::rootContext()` 함수를 호출하여 최상위 컨텍스트에 접근할 수 있습니다.
객체를 인스턴스화한 후, 클라이언트는 일반적으로 제어권을 애플리케이션 이벤트 루프로 넘겨, 사용자 입력 이벤트(마우스 클릭 등)가 애플리케이션으로 전달되어 처리될 수 있도록 합니다.
참고: Qt Quick 모듈은 QML 애플리케이션을 표시하기 위한 QML Runtime 및 시각적 창을 제공하는 편의 클래스인 QQuickView 를 제공합니다.
QQmlEngine 클래스
QQmlEngine 클래스는 QML 문서에 정의된 객체 계층 구조를 관리할 수 있는 엔진을 제공합니다. 이 클래스는 표현식이 평가되는 루트 QML 컨텍스트를 제공하며, 필요할 때 객체의 속성이 올바르게 업데이트되도록 보장합니다.
QQmlEngine 을 사용하면 관리하는 모든 객체에 적용되는 전역 설정을 구성할 수 있습니다. 예를 들어, 네트워크 통신에 사용할 QNetworkAccessManager 이나 영구 저장에 사용할 파일 경로 등이 있습니다.
QQmlEngine 클래스가 제공하는 기능과 애플리케이션에서 이를 사용하는 방법에 대한 자세한 내용은 QQmlEngine 클래스 문서를 참조하십시오.
QQmlContext 클래스
QQmlContext 클래스는 객체 인스턴스화 및 표현식 평가를 위한 컨텍스트를 제공합니다. 모든 객체는 특정 컨텍스트에서 인스턴스화되며, 애플리케이션 실행 중에 평가되는 모든 표현식은 특정 컨텍스트 내에서 평가됩니다. 이 컨텍스트는 기호가 어떻게 해결되는지를 정의하며, 따라서 표현식이 어떤 값을 대상으로 연산하는지를 결정합니다.
QQmlContext 의 속성을 추가하거나 제거하여 객체의 평가 컨텍스트를 수정하는 방법과 객체의 컨텍스트에 접근하는 방법에 대한 자세한 내용은 QQmlContext 클래스 문서를 참조하십시오.
동적 객체 인스턴스화 및 표현식 평가
동적 객체 인스턴스화와 동적 표현식 평가는 모두 QML의 핵심 개념입니다. QML 문서는 QQmlComponent 을 사용하여 런타임에 인스턴스화할 수 있는 객체 유형을 정의합니다. QQmlComponent 클래스의 인스턴스는 C++에서 직접 생성하거나, 명령형 QML 코드의 Qt.createComponent() 함수를 통해 생성할 수 있습니다. C++에서는 QQmlExpression 클래스를 통해 임의의 표현식을 계산할 수 있으며, 이러한 표현식은 QML 컨텍스트와 직접 상호작용할 수 있습니다.
QQmlComponent 클래스
QQmlComponent 클래스를 사용하여 QML 문서를 불러올 수 있습니다. 이 클래스는 QML 문서에 정의된 객체 계층 구조를 인스턴스화하기 위해 QQmlEngine 가 필요합니다.
QQmlComponent 의 사용 방법에 대한 자세한 내용은 QQmlComponent 클래스 문서를 참조하십시오.
QQmlExpression 클래스
QQmlExpression 클래스는 클라이언트가 특정 QML 평가 컨텍스트를 사용하여 C++에서 JavaScript 표현식을 평가할 수 있는 방법을 제공합니다. 이를 통해 클라이언트는 예를 들어 ID를 통해 QML 객체에 접근할 수 있습니다. 평가 결과는 QVariant 로 반환되며, 변환 규칙은 QML 엔진에 의해 정의됩니다.
애플리케이션에서 ` QQmlExpression `를 사용하는 방법에 대한 자세한 내용은 QQmlExpression 클래스 문서를 참조하십시오.
QML 애플리케이션 내 클래스 사용법
이 페이지에서는 C++ 클래스와 상호 작용하는 QML 애플리케이션을 만드는 방법을 설명합니다:
© 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.