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