Spec-Zone.ru › Qt

Тип QML Loader3D

Позволяет динамически загружать 3D поддерево из URL-адреса или компонента. Подробнее...

Заявление об импорте: import QtQuick3D
Наследует:

Узел

  • Список всех членов, включая унаследованные члены

Свойства

  • active : bool
  • asynchronous : bool
  • item : object
  • progress : real
  • источник : url
  • sourceComponent : Component
  • статус : перечисление

Сигналы

  • loaded()

Методы

  • объект setSource(url источник, объект свойства)

Подробное описание

Loader3D используется для динамической загрузки QML-компонентов для Qt Quick 3D.

Loader3D может загрузить QML-файл (используя свойство источник) или объект Component (используя свойство sourceComponent). Он полезен для отсрочки создания компонента до его необходимости: например, когда компонент должен создаваться по требованию или когда компонент не должен создаваться излишне по соображениям производительности.

Примечание: Loader3D работает так же, как Loader. Разница между ними заключается в том, что Loader предоставляет способ динамической загрузки объектов, наследующих Item, а Loader3D предоставляет способ загрузки объектов, наследующих Object3D и являющихся частью 3D-сцены.

Документация по свойствам

active : bool

Это свойство true , если Loader3D в настоящее время активен. Значение по умолчанию для этого свойства равно true.

Если Loader3D неактивен, изменение свойств источник или sourceComponent не приведет к инстанцированию элемента до тех пор, пока Loader3D не станет активным.

Установка значения в неактивное состояние приведет к освобождению любого загруженного в загрузчик элемента item, но не повлияет на источник или sourceComponent.

Статус неактивного загрузчика всегда Null.

См. также источник и sourceComponent.

asynchronous : bool

Это свойство содержит значение, определяющее, будет ли компонент инстанцирован асинхронно. По умолчанию оно равно false.

При использовании со свойством источник загрузка и компиляция также будут выполняться в фоновом потоке.

Асинхронная загрузка создает объекты, объявленные компонентом, в течение нескольких кадров и снижает вероятность появления артефактов в анимации. При асинхронной загрузке статус изменится на 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.

См. также статус.

источник : url

Это свойство содержит URL-адрес QML-компонента для инстанцирования.

Чтобы разгрузить текущий загруженный объект, установите это свойство в пустую строку или установите sourceComponent в undefined. Установка source в новый URL-адрес также приведет к разгрузке элемента, созданного по предыдущему URL-адресу.

См. также sourceComponent, статус и progress.

sourceComponent : Component

Это свойство содержит Component для инстанцирования.

Item {
    Component {
        id: redCube
        Model {
            source: "#Cube"
            materials: DefaultMaterial {
                diffuseColor: "red"
            }
        }
    }

    Loader3D { sourceComponent: redCube }
    Loader3D { sourceComponent: redCube; x: 10 }
}

Чтобы разгрузить текущий загруженный объект, установите это свойство в undefined.

См. также источник и progress.

[только для чтения] статус : перечисление

Это свойство содержит статус загрузки 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' }

Обратите внимание, что если источник — это локальный файл, статус изначально будет Готов (или Ошибка). Хотя в этом случае не будет сигнала onStatusChanged, сигнал onLoaded все равно будет вызываться.

См. также progress.

Документация по сигналам

loaded()

Этот сигнал испускается, когда статус становится Loader3D.Ready, или при успешной первоначальной загрузке.

Соответствующий обработчик — onLoaded.

Примечание: Соответствующий обработчик — onLoaded.

Документация по методам

объект setSource(url источник, объект свойства)

Создает экземпляр объекта заданного компонента источник, который будет иметь заданные свойства. Аргумент свойства является необязательным. Экземпляр будет доступен через свойство item после завершения загрузки и инстанцирования.

Если свойство active равно false в момент вызова этой функции, заданный компонент источник не будет загружен, но источник и начальные свойства будут кэшированы. Когда загрузчик становится активным, экземпляр компонента источник будет создан с установленными начальными свойствами.

Установка начальных значений свойств экземпляра компонента таким образом не вызовет никаких связанных поведений.

Обратите внимание, что кэшированные свойства будут очищены, если свойство источник или sourceComponent изменено после вызова этой функции, но до установки для загрузчика активного состояния.

См. также источник и active.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qml-qtquick3d-loader3d.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API