Loader3D QML Type
URL 또는 컴포넌트에서 3D 하위 트리를 동적으로 불러올 수 있습니다. 더 보기...
| Import Statement: | import QtQuick3D |
| Inherits: |
속성
- active : bool
- asynchronous : bool
- item : object
- progress : real
- source : url
- sourceComponent : Component
- status : enumeration
신호
- loaded()
방법
- object setSource(url source, object properties)
상세 설명
Loader3D는 Qt Quick 3D 용 QML 컴포넌트를 동적으로 로드하는 데 사용됩니다.
Loader3D는 QML 파일( source 속성을 사용)이나 Component 객체( sourceComponent 속성을 사용)를 로드할 수 있습니다. 이는 컴포넌트가 필요할 때까지 생성을 지연시키는 데 유용합니다. 예를 들어, 컴포넌트를 필요에 따라 동적으로 생성해야 하거나, 성능상의 이유로 불필요하게 생성되지 않도록 해야 할 때입니다.
참고: Loader3D는 Loader 와 동일한 방식으로 작동합니다. 두 가지의 차이점은, Loader 는 Item 를 상속하는 객체를 동적으로 로드하는 방법을 제공하는 반면, Loader3D는 Object3D 를 상속하고 3D 씬의 일부인 객체를 로드하는 방법을 제공한다는 점입니다.
속성 문서
active : bool
Loader3D 이 현재 활성화된 경우, 이 속성의 값은 true 입니다. 이 속성의 기본값은 true 입니다.
Loader3D 가 비활성화된 상태에서는, source 또는 sourceComponent 를 변경하더라도 Loader3D 가 활성화될 때까지 해당 항목이 인스턴스화되지 않습니다.
값을 비활성(inactive)으로 설정하면 로더가 로드한 모든 인스턴스( item )가 해제되지만, source 또는 sourceComponent 에는 영향을 미치지 않습니다.
비활성 로더의 status 는 항상 Null 입니다.
source 및 sourceComponent항목도 참조하십시오 .
asynchronous : bool
이 속성은 컴포넌트가 비동기적으로 인스턴스화될지 여부를 결정합니다. 기본값은 ‘ false ’입니다.
source 속성과 함께 사용할 경우, 로딩 및 컴파일도 백그라운드 스레드에서 수행됩니다.
비동기 로딩은 여러 프레임에 걸쳐 컴포넌트가 선언한 객체를 생성하며, 애니메이션에서 발생하는 글리치 발생 가능성을 줄여줍니다. 비동기 로딩 시 상태는 ` Loader3D.Loading`으로 변경됩니다. 컴포넌트 전체가 생성되면 ` item `가 사용 가능해지며, 상태는 `Loader.Ready`로 변경됩니다.
비동기 로딩이 진행 중인 상태에서 이 속성의 값을 ` false.Loading`으로 변경하면 즉시 동기식으로 완료됩니다. 이를 통해 비동기 로딩을 시작한 후, 비동기 로딩이 완료되기 전에 ` Loader3D ` 콘텐츠에 접근해야 할 경우 강제로 완료를 유도할 수 있습니다.
항목이 점진적으로 로딩되는 것을 방지하려면 visible 을 적절히 설정하십시오. 예를 들어,
Loader3D {
source: "mycomponent.qml"
asynchronous: true
visible: status == Loader3D.Ready
}이 속성은 객체 인스턴스화에만 영향을 미치며, 네트워크를 통해 컴포넌트를 비동기적으로 불러오는 것과는 무관하다는 점에 유의하십시오.
item : object [read-only]
이 속성은 현재 로드된 최상위 객체를 포함합니다.
progress : real [read-only]
이 속성은 네트워크에서 QML 데이터를 불러오는 진행 상황을 0.0(아무것도 불러오지 않음)부터 1.0(완료)까지 나타냅니다. 대부분의 QML 파일은 크기가 매우 작기 때문에 이 값은 0에서 1로 빠르게 변합니다.
status도 참조하십시오 .
source : url
이 속성은 인스턴스화할 QML 컴포넌트의 URL을 저장합니다.
현재 로드된 객체를 언로드하려면 이 속성을 빈 문자열로 설정하거나, ` sourceComponent `을 ` undefined`으로 설정하십시오. ` source `을 새로운 URL로 설정해도 이전 URL로 생성된 항목이 언로드됩니다.
sourceComponent, status 및 progress도 참조하십시오 .
sourceComponent : Component
이 속성은 인스턴스화할 ` Component `를 보관합니다.
Item {
Component {
id: redCube
Model {
source: "#Cube"
materials: DefaultMaterial {
diffuseColor: "red"
}
}
}
Loader3D { sourceComponent: redCube }
Loader3D { sourceComponent: redCube; x: 10 }
}현재 로드된 객체를 언로드하려면 이 속성을 ` undefined`로 설정하십시오.
status : enumeration [read-only]
이 속성은 QML 로딩 상태를 나타냅니다. 다음 중 하나를 가질 수 있습니다:
| 상수 | 설명 |
|---|---|
Loader3D.Null | 로더가 비활성화되었거나 QML 소스 파일이 설정되지 않았습니다. |
Loader3D.Ready | QML 소스 파일이 로드되었습니다. |
Loader3D.Loading | QML 소스 파일이 현재 로드 중입니다. |
Loader3D.Error | QML 소스를 불러오는 동안 오류가 발생했습니다. |
이 상태를 사용하여 업데이트를 제공하거나 상태 변경에 어떤 방식으로든 대응하십시오. 예를 들어, 다음과 같은 조치를 취할 수 있습니다:
- 상태 변경을 트리거합니다:
State { name: 'loaded'; when: loader.status == Loader3D.Ready } onStatusChanged신호 핸들러를 구현:Loader3D { id: loader onStatusChanged: if (loader.status == Loader3D.Ready) console.log('Loaded') }- 상태 값에 바인딩하기:
Text { text: loader.status == Loader3D.Ready ? 'Loaded' : 'Not loaded' }
소스가 로컬 파일인 경우, 상태는 처음에 Ready(또는 Error)가 됩니다. 이 경우 onStatusChanged 신호는 발생하지 않지만, onLoaded는 여전히 호출됩니다.
progress도 참조하십시오 .
신호 문서
loaded()
이 신호는 status 가 Loader3D.Ready 로 변경되거나, 초기 로드가 성공적으로 완료되었을 때 발생합니다.
이에 대응하는 핸들러는 onLoaded 입니다.
참고: 해당 핸들러는 onLoaded 입니다.
메서드 문서
object setSource(url source, object properties)
지정된 source 컴포넌트의 객체 인스턴스를 생성하며, 이 인스턴스는 지정된 properties 을 갖게 됩니다. properties 인수는 선택 사항입니다. 로딩 및 인스턴스화가 완료되면 item 속성을 통해 해당 인스턴스에 접근할 수 있습니다.
이 함수가 호출될 당시 active 속성이 false 인 경우, 지정된 source 컴포넌트는 로드되지 않지만 source 및 초기 properties 는 캐시됩니다. 로더가 active 로 설정되면, 초기 properties 가 설정된 source 컴포넌트의 인스턴스가 생성됩니다.
이러한 방식으로 컴포넌트 인스턴스의 초기 속성 값을 설정하더라도 관련 Behavior는 트리거되지 않습니다.
이 함수를 호출한 후, ` source ` 또는 ` sourceComponent `가 변경되고 `loader` ` active`가 설정되기 전에 캐시된 ` properties `가 지워진다는 점에 유의하십시오.
© 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.