Тип Loader3D QML
Позволяет динамически загружать 3D поддерево из URL-адреса или компонента. Подробнее...
| Заявление об импорте: | import QtQuick3D . |
| Наследует: |
Свойства
- active : bool
- asynchronous : bool
- item : object
- progress : real
- source : url
- sourceComponent : Component
- status : перечисление
Сигналы
- loaded()
Методы
- object setSource(url source, object properties)
Подробное описание
Loader3D используется для динамической загрузки QML-компонентов для Qt Quick 3D.
Loader3D может загрузить QML-файл (используя свойство source) или объект Component (используя свойство sourceComponent). Это полезно для отсрочки создания компонента до момента его необходимости: например, когда компонент должен создаваться по требованию или когда компонент не должен создаваться без необходимости по соображениям производительности.
Примечание: Loader3D работает так же, как Loader. Разница между ними заключается в том, что Loader предоставляет способ динамической загрузки объектов, которые наследуют Item, в то время как Loader3D предоставляет способ загрузки объектов, которые наследуют Object3D и являются частью 3D сцены.
Документация по свойствам
active : bool
Это свойство true если Loader3D в настоящее время активен. Значение по умолчанию для этого свойства равно true.
Если Loader3D неактивен, изменение свойств source или sourceComponent не приведет к созданию объекта до тех пор, пока Loader3D не будет активирован.
Установка значения в неактивное состояние приведет к освобождению любого загруженного объекту item загрузчиком, но не повлияет на source или sourceComponent.
Состояние неактивного загрузчика всегда равно Null.
См. также source и sourceComponent.
asynchronous : bool
Это свойство содержит значение, определяющее, будет ли компонент создаваться асинхронно. По умолчанию оно равно false.
При использовании в сочетании со свойством source, загрузка и компиляция также будут выполняться в фоновом потоке.
Асинхронная загрузка создает объекты, объявленные компонентом в течение нескольких кадров, и снижает вероятность появления артефактов в анимации. При асинхронной загрузке состояние изменяется на Loader3D.Loading. После того как весь компонент будет создан, объект item станет доступным, и состояние изменится на Loader.Ready.
Изменение значения этого свойства на false во время асинхронной загрузки принудительно завершит её немедленно и синхронно. Это позволяет начать асинхронную загрузку и затем принудительно завершить её, если к содержимому Loader3D нужно получить доступ до завершения асинхронной загрузки.
Чтобы избежать постепенной загрузки элементов, установите visible соответствующим образом, например:
Loader3D {
source: "mycomponent.qml"
asynchronous: true
visible: status == Loader3D.Ready
} Обратите внимание, что это свойство влияет только на создание объектов; оно не связано с асинхронной загрузкой компонента через сеть.
[только для чтения] item : object
Это свойство содержит главный объект, который в настоящее время загружен.
[только для чтения] progress : real
Это свойство содержит степень выполнения загрузки QML-данных из сети, от 0.0 (ничего не загружено) до 1.0 (загрузка завершена). Большинство QML-файлов довольно небольшие, поэтому это значение будет быстро изменяться от 0 до 1.
См. также status.
source : url
Это свойство содержит URL-адрес QML-компонента для создания экземпляра.
Для разгрузки текущего загруженного объекта установите это свойство в пустую строку или установите 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 : перечисление
Это свойство содержит состояние загрузки 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, создаётся экземпляр компонента source с заданными начальными properties.
Установка начальных значений свойств экземпляра компонента таким образом не вызовет связанные Behaviors.
Обратите внимание, что кэшированные properties будут очищены, если свойство source или sourceComponent изменится после вызова этой функции, но до установки свойства загрузчика active.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qml-qtquick3d-loader3d.html