QML 문서
QML 문서는 QML 문서 구문을 따르는 문자열입니다. 문서는 QML 객체 유형을 정의합니다. 문서는 일반적으로 로컬 또는 원격으로 저장된 ".qml"
파일에서 로드되지만 코드에서 수동으로 구성할 수도 있습니다. 문서에 정의된 객체 유형의 인스턴스는 QML 코드의 Component 또는 C++의 QQmlComponent 을 사용하여 만들 수 있습니다. 또는 객체 유형이 특정 유형 이름으로 QML 유형 시스템에 명시적으로 노출된 경우 해당 유형을 다른 문서의 객체 선언에 직접 사용할 수 있습니다.
문서에서 재사용 가능한 QML 객체 유형을 정의하는 기능은 클라이언트가 가독성이 높고 유지 관리가 쉬운 모듈식 코드를 작성할 수 있도록 하는 중요한 요소입니다.
Qt 5.4부터는 문서에 파일 확장자 ".ui.qml"
를 가질 수도 있습니다. QML 엔진은 이러한 파일을 표준 .qml 파일처럼 처리하고 확장자의 .ui
부분을 무시합니다. Qt Design Studio 은 이러한 파일을 UI 파일로 처리합니다. 파일에는 QML 언어 기능의 하위 집합만 포함할 수 있습니다.
QML 문서의 구조
QML 문서는 가져오기 섹션과 객체 선언 섹션의 두 섹션으로 구성됩니다. 문서의 가져오기 섹션에는 문서에서 사용할 수 있는 QML 객체 유형과 JavaScript 리소스를 정의하는 가져오기 문이 포함되어 있습니다. 객체 선언 섹션은 문서에서 정의한 객체 유형을 인스턴스화할 때 생성할 객체 트리를 정의합니다.
간단한 문서의 예는 다음과 같습니다:
import QtQuick 2.0 Rectangle { width: 300 height: 200 color: "blue" }
이 주제에 대한 자세한 내용은 QML 문서의 구조를 참조하세요.
QML 언어의 구문
문서의 객체 선언 섹션에는 적절한 QML 구문으로 유효한 객체 계층 구조를 지정해야 합니다. 객체 선언에는 사용자 지정 객체 속성의 지정이 포함될 수 있습니다. 객체 메서드 속성은 JavaScript 함수로 지정할 수 있으며, 객체 속성 속성은 속성 바인딩 표현식으로 지정할 수 있습니다.
유효한 구문에 대한 자세한 내용은 QML 구 문에 대한 문서를 참조하고, 해당 주제에 대한 자세한 내용은 QML과 JavaScript 통합에 대한 문서를 참조하세요.
QML 문서를 통해 객체 유형 정의하기
이전 섹션에서 간략하게 설명한 것처럼 문서는 QML 객체 유형을 암시적으로 정의합니다. QML의 핵심 원칙 중 하나는 객체 유형을 정의한 다음 재사용할 수 있다는 것입니다. 이는 QML 코드의 유지보수성을 향상시키고, 객체 계층 구조 선언의 가독성을 높이며, UI 정의와 로직 구현의 분리를 촉진합니다.
다음 예제에서는 클라이언트 개발자가 파일에 문서로 Button
유형을 정의합니다:
// Button.qml import QtQuick Rectangle { width: 100; height: 100 color: "red" MouseArea { anchors.fill: parent onClicked: console.log("Button clicked!") } }
그러면 애플리케이션에서 Button
유형을 사용할 수 있습니다:
이 주제에 대한 자세한 내용은 문서에서 객체 유형 정의하기 문서를 참조하세요.
리소스 로딩 및 네트워크 투명성
QML은 네트워크 투명성이라는 점에 유의하는 것이 중요합니다. 애플리케이션은 로컬 경로의 문서와 마찬가지로 원격 경로에서 문서를 가져올 수 있습니다. 실제로 url
속성에 원격 또는 로컬 URL을 지정할 수 있으며, QML 엔진은 관련된 모든 네트워크 통신을 처리합니다.
가져오기의 네트워크 투명성에 대한 자세한 내용은 네트워크 투명성 문서를 참조하세요.
범위 및 명명 해상도
문서의 표현식은 일반적으로 객체 또는 객체의 속성을 포함하며, 여러 객체가 정의될 수 있고 서로 다른 객체가 동일한 이름의 속성을 가질 수 있으므로 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.