Loader3D QML Type

URL 또는 컴포넌트에서 3D 하위 트리를 동적으로 로드할 수 있습니다. 더 보기...

Import Statement: import QtQuick3D
Inherits:

Node

속성

신호

방법

  • object setSource(url source, object properties)

상세 설명

Loader3D는 Qt Quick 3D 에 대한 QML 컴포넌트를 동적으로 로드하는 데 사용됩니다.

Loader3D는 QML 파일( source 속성 사용) 또는 Component 객체( sourceComponent 속성 사용)를 로드할 수 있습니다. 컴포넌트를 필요에 따라 생성해야 하거나 성능상의 이유로 불필요하게 생성해서는 안 되는 경우와 같이 필요할 때까지 컴포넌트 생성을 지연시키는 데 유용합니다.

참고: Loader3D는 Loader 와 동일한 방식으로 작동합니다. LoaderItem 을 상속하는 객체를 동적으로 로드하는 방법을 제공하는 반면, Loader3D 는 Object3D 을 상속하고 3D 장면의 일부인 객체를 로드하는 방법을 제공한다는 차이점이 있습니다.

프로퍼티 문서

active : bool

Loader3D 이 현재 활성화된 경우 이 프로퍼티는 true 입니다. 이 프로퍼티의 기본값은 true 입니다.

Loader3D 가 비활성 상태인 경우 source 또는 sourceComponent 를 변경해도 Loader3D 가 활성화될 때까지 항목이 인스턴스화되지 않습니다.

값을 비활성으로 설정하면 로더가 로드한 item 은 해제되지만 source 또는 sourceComponent 에는 영향을 미치지 않습니다.

비활성 로더의 status 은 항상 Null 입니다.

sourcesourceComponent도 참조하십시오 .


asynchronous : bool

이 속성은 컴포넌트가 비동기적으로 인스턴스화될지 여부를 보유합니다. 기본값은 false 입니다.

source 속성과 함께 사용하면 로딩 및 컴파일도 백그라운드 스레드에서 수행됩니다.

비동기적으로 로드하면 컴포넌트가 선언한 객체가 여러 프레임에 걸쳐 생성되며 애니메이션에서 글리치가 발생할 가능성이 줄어듭니다. 비동기 로딩 시 상태는 Loader3D.로딩 중으로 변경됩니다. 전체 컴포넌트가 생성되면 item 을 사용할 수 있고 상태는 Loader.Ready로 변경됩니다.

비동기 로드가 진행 중일 때 이 속성 값을 false 로 변경하면 즉시 동기식으로 완료됩니다. 이렇게 하면 비동기 로드를 시작한 다음 비동기 로드가 완료되기 전에 Loader3D 콘텐츠에 액세스해야 하는 경우 강제로 완료할 수 있습니다.

항목이 점진적으로 로드되는 것을 방지하려면 visible 을 적절하게 설정하세요.

Loader3D {
    source: "mycomponent.qml"
    asynchronous: true
    visible: status == Loader3D.Ready
}

이 속성은 객체 인스턴스화에만 영향을 미치며 네트워크를 통한 컴포넌트 비동기 로딩과는 관련이 없습니다.


item : object [read-only]

이 프로퍼티는 현재 로드된 최상위 객체를 보유합니다.


progress : real [read-only]

이 속성은 0.0(아무것도 로드되지 않음)에서 1.0(완료)까지 네트워크에서 QML 데이터를 로드하는 진행률을 보유합니다. 대부분의 QML 파일은 크기가 매우 작기 때문에 이 값은 0에서 1로 빠르게 변합니다.

status참조하세요 .


source : url

이 프로퍼티에는 인스턴스화할 QML 컴포넌트의 URL이 저장됩니다.

현재 로드된 객체를 언로드하려면 이 속성을 빈 문자열로 설정하거나 sourceComponentundefined 으로 설정합니다. 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 로 설정합니다.

sourceprogress도 참조 하세요.


status : enumeration [read-only]

이 속성은 QML 로딩 상태를 저장합니다. 다음 중 하나가 될 수 있습니다:

Constant설명
Loader3D.Null로더가 비활성 상태이거나 QML 소스가 설정되지 않았습니다.
Loader3D.ReadyQML 소스가 로드되었습니다.
Loader3D.LoadingQML 소스가 현재 로드 중입니다.
Loader3D.ErrorQML 소스를 로드하는 동안 오류가 발생했습니다.

이 상태를 사용하여 업데이트를 제공하거나 어떤 식으로든 상태 변경에 응답하세요. 예를 들면 다음과 같습니다:

  • 상태 변경을 트리거합니다:
    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' }

소스가 로컬 파일인 경우 상태는 처음에 준비됨(또는 오류)이 됩니다. 이 경우 onStatusChanged 신호는 없지만 onLoaded는 계속 호출됩니다.

progress참조하세요 .


신호 문서

loaded()

이 신호는 statusLoader3D.Ready 이 될 때 또는 초기 로드가 성공할 때 발생합니다.

해당 핸들러는 onLoaded 입니다.

참고: 해당 핸들러는 onLoaded 입니다.


메서드 문서

object setSource(url source, object properties)

주어진 source 컴포넌트의 객체 인스턴스를 생성하여 properties 을 갖도록 합니다. properties 인수는 선택 사항입니다. 로딩 및 인스턴스화가 완료되면 item 속성을 통해 인스턴스에 액세스할 수 있습니다.

이 함수가 호출될 때 active 속성이 false 인 경우 지정된 source 컴포넌트는 로드되지 않고 source 및 초기 properties 가 캐시됩니다. 로더가 active 로 만들어지면 source 컴포넌트의 인스턴스가 초기 properties 설정으로 생성됩니다.

이러한 방식으로 컴포넌트 인스턴스의 초기 속성 값을 설정해도 연결된 Behavior트리거되지 않습니다.

이 함수를 호출한 후 로더 active 를 설정하기 전에 source 또는 sourceComponent 가 변경되면 캐시된 properties 는 지워집니다.

sourceactive도 참조하세요 .


© 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.