![]() |
Qt 6.x
The Qt SDK
|
#include <qquick3dloader_p.h>
Public Types | |
enum | Status { Null , Ready , Loading , Error } |
![]() | |
enum | TransformSpace { LocalSpace , ParentSpace , SceneSpace } |
enum | StaticFlags { None } |
Public Member Functions | |
QQuick3DLoader (QQuick3DNode *parent=nullptr) | |
\qmltype Loader3D \inqmlmodule QtQuick3D \inherits Node | |
~QQuick3DLoader () override | |
bool | active () const |
\qmlproperty bool QtQuick3D::Loader3D::active This property is true if the Loader3D is currently active. | |
void | setActive (bool newVal) |
Q_INVOKABLE void | setSource (QQmlV4Function *) |
QUrl | source () const |
\qmlproperty url QtQuick3D::Loader3D::source This property holds the URL of the QML component to instantiate. | |
void | setSource (const QUrl &) |
QQmlComponent * | sourceComponent () const |
\qmlproperty Component QtQuick3D::Loader3D::sourceComponent This property holds the \l{Component} to instantiate. | |
void | setSourceComponent (QQmlComponent *) |
void | resetSourceComponent () |
Status | status () const |
\qmlproperty enumeration QtQuick3D::Loader3D::status \readonly | |
qreal | progress () const |
\qmlsignal QtQuick3D::Loader3D::loaded() | |
bool | asynchronous () const |
\qmlproperty bool QtQuick3D::Loader3D::asynchronous | |
void | setAsynchronous (bool a) |
QObject * | item () const |
\qmlproperty object QtQuick3D::Loader3D::item \readonly This property holds the top-level object that is currently loaded. | |
![]() | |
QQuick3DNode (QQuick3DNode *parent=nullptr) | |
\qmltype Node \inherits Object3D \inqmlmodule QtQuick3D | |
~QQuick3DNode () override | |
float | x () const |
\qmlproperty real QtQuick3D::Node::x | |
float | y () const |
\qmlproperty real QtQuick3D::Node::y | |
float | z () const |
\qmlproperty real QtQuick3D::Node::z | |
QQuaternion | rotation () const |
\qmlproperty quaternion QtQuick3D::Node::rotation | |
QVector3D | eulerRotation () const |
\qmlproperty vector3d QtQuick3D::Node::eulerRotation | |
QVector3D | position () const |
\qmlproperty vector3d QtQuick3D::Node::position | |
QVector3D | scale () const |
\qmlproperty vector3d QtQuick3D::Node::scale | |
QVector3D | pivot () const |
\qmlproperty vector3d QtQuick3D::Node::pivot | |
float | localOpacity () const |
\qmlproperty real QtQuick3D::Node::opacity | |
bool | visible () const |
\qmlproperty bool QtQuick3D::Node::visible | |
int | staticFlags () const |
\qmlproperty int QtQuick3D::Node::staticFlags | |
QQuick3DNode * | parentNode () const |
QVector3D | forward () const |
\qmlproperty vector3d QtQuick3D::Node::forward \readonly | |
QVector3D | up () const |
\qmlproperty vector3d QtQuick3D::Node::up \readonly | |
QVector3D | right () const |
\qmlproperty vector3d QtQuick3D::Node::right \readonly | |
QVector3D | scenePosition () const |
\qmlproperty vector3d QtQuick3D::Node::scenePosition \readonly | |
QQuaternion | sceneRotation () const |
\qmlproperty quaternion QtQuick3D::Node::sceneRotation \readonly | |
QVector3D | sceneScale () const |
\qmlproperty vector3d QtQuick3D::Node::sceneScale \readonly | |
QMatrix4x4 | sceneTransform () const |
\qmlproperty matrix4x4 QtQuick3D::Node::sceneTransform \readonly | |
Q_INVOKABLE void | rotate (qreal degrees, const QVector3D &axis, QQuick3DNode::TransformSpace space) |
\qmlmethod QtQuick3D::Node::rotate(real degrees, vector3d axis, enumeration space) | |
Q_INVOKABLE QVector3D | mapPositionToScene (const QVector3D &localPosition) const |
\qmlmethod vector3d QtQuick3D::Node::mapPositionToScene(vector3d localPosition) | |
Q_INVOKABLE QVector3D | mapPositionFromScene (const QVector3D &scenePosition) const |
\qmlmethod vector3d QtQuick3D::Node::mapPositionFromScene(vector3d scenePosition) | |
Q_INVOKABLE QVector3D | mapPositionToNode (const QQuick3DNode *node, const QVector3D &localPosition) const |
\qmlmethod vector3d QtQuick3D::Node::mapPositionToNode(QtQuick3D::Node node, vector3d localPosition) | |
Q_INVOKABLE QVector3D | mapPositionFromNode (const QQuick3DNode *node, const QVector3D &localPosition) const |
\qmlmethod vector3d QtQuick3D::Node::mapPositionFromNode(QtQuick3D::Node node, vector3d localPosition) | |
Q_INVOKABLE QVector3D | mapDirectionToScene (const QVector3D &localDirection) const |
\qmlmethod vector3d QtQuick3D::Node::mapDirectionToScene(vector3d localDirection) | |
Q_INVOKABLE QVector3D | mapDirectionFromScene (const QVector3D &sceneDirection) const |
\qmlmethod vector3d QtQuick3D::Node::mapDirectionFromScene(vector3d sceneDirection) | |
Q_INVOKABLE QVector3D | mapDirectionToNode (const QQuick3DNode *node, const QVector3D &localDirection) const |
\qmlmethod vector3d QtQuick3D::Node::mapDirectionToNode(QtQuick3D::Node node, vector3d localDirection) | |
Q_INVOKABLE QVector3D | mapDirectionFromNode (const QQuick3DNode *node, const QVector3D &localDirection) const |
\qmlmethod vector3d QtQuick3D::Node::mapDirectionFromNode(QtQuick3D::Node node, vector3d localDirection) | |
void | markAllDirty () override |
![]() | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
template<typename T > | |
T | findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T > | |
QList< T > | findChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
template<typename T > | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false . | |
![]() | |
QQmlParserStatus () | |
virtual | ~QQmlParserStatus () |
virtual void | classBegin ()=0 |
Invoked after class creation, but before any properties have been set. | |
virtual void | componentComplete ()=0 |
Invoked after the root component that caused this instantiation has completed construction. | |
Protected Member Functions | |
void | componentComplete () override |
Invoked after the root component that caused this instantiation has completed construction. | |
![]() | |
void | connectNotify (const QMetaMethod &signal) override |
void | disconnectNotify (const QMetaMethod &signal) override |
void | componentComplete () override |
Invoked after the root component that caused this instantiation has completed construction. | |
QQuick3DNode (QQuick3DNodePrivate &dd, QQuick3DNode *parent=nullptr) | |
QSSGRenderGraphObject * | updateSpatialNode (QSSGRenderGraphObject *node) override |
virtual void | itemChange (ItemChange, const ItemChangeData &) override |
![]() | |
virtual QSSGRenderGraphObject * | updateSpatialNode (QSSGRenderGraphObject *node) |
virtual void | markAllDirty () |
virtual void | itemChange (ItemChange, const ItemChangeData &) |
QQuick3DObject (QQuick3DObjectPrivate &dd, QQuick3DObject *parent=nullptr) | |
void | classBegin () override |
Invoked after class creation, but before any properties have been set. | |
void | componentComplete () override |
Invoked after the root component that caused this instantiation has completed construction. | |
bool | isComponentComplete () const |
virtual void | preSync () |
![]() | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr. | |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. | |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
virtual void | childEvent (QChildEvent *event) |
This event handler can be reimplemented in a subclass to receive child events. | |
virtual void | customEvent (QEvent *event) |
This event handler can be reimplemented in a subclass to receive custom events. | |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
Properties | |
bool | active |
QUrl | source |
QQmlComponent * | sourceComponent |
QObject * | item |
Status | status |
qreal | progress |
bool | asynchronous |
![]() | |
float | x |
float | y |
float | z |
QQuaternion | rotation |
QVector3D | eulerRotation |
QVector3D | position |
QVector3D | scale |
QVector3D | pivot |
float | opacity |
bool | visible |
QVector3D | forward |
QVector3D | up |
QVector3D | right |
QVector3D | scenePosition |
QQuaternion | sceneRotation |
QVector3D | sceneScale |
QMatrix4x4 | sceneTransform |
int | staticFlags |
![]() | |
QQuick3DObject * | parent |
\qmlproperty Object3D QtQuick3D::Object3D::parent This property holds the parent of the Object3D in a 3D scene. | |
![]() | |
QString | objectName |
the name of this object | |
Additional Inherited Members | |
![]() | |
void | setX (float x) |
void | setY (float y) |
void | setZ (float z) |
void | setRotation (const QQuaternion &rotation) |
void | setEulerRotation (const QVector3D &eulerRotation) |
void | setPosition (const QVector3D &position) |
void | setScale (const QVector3D &scale) |
void | setPivot (const QVector3D &pivot) |
void | setLocalOpacity (float opacity) |
void | setVisible (bool visible) |
void | setStaticFlags (int staticFlags) |
![]() | |
void | update () |
void | setParentItem (QQuick3DObject *parentItem) |
![]() | |
void | deleteLater () |
\threadsafe | |
![]() | |
static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
\threadsafe | |
static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
\threadsafe | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static bool | disconnect (const QMetaObject::Connection &) |
Disconnect a connection. | |
template<typename Func1 , typename Func2 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
template<typename Func1 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
Definition at line 42 of file qquick3dloader_p.h.
Enumerator | |
---|---|
Null | |
Ready | |
Loading | |
Error |
Definition at line 72 of file qquick3dloader_p.h.
|
explicit |
\qmltype Loader3D \inqmlmodule QtQuick3D \inherits Node
Allows dynamic loading of a 3D subtree from a URL or Component.
Loader3D is used to dynamically load QML components for Qt Quick 3D.
Loader3D can load a QML file (using the \l source property) or a \l Component object (using the \l sourceComponent property). It is useful for delaying the creation of a component until it is required: for example, when a component should be created on demand, or when a component should not be created unnecessarily for performance reasons.
Definition at line 50 of file qquick3dloader.cpp.
|
override |
Definition at line 62 of file qquick3dloader.cpp.
bool QQuick3DLoader::active | ( | ) | const |
\qmlproperty bool QtQuick3D::Loader3D::active This property is true
if the Loader3D is currently active.
The default value for this property is true
.
If the Loader3D is inactive, changing the \l source or \l sourceComponent will not cause the item to be instantiated until the Loader3D is made active.
Setting the value to inactive will cause any \l item loaded by the loader to be released, but will not affect the \l source or \l sourceComponent.
The \l status of an inactive loader is always Null
.
Definition at line 88 of file qquick3dloader.cpp.
|
signal |
bool QQuick3DLoader::asynchronous | ( | ) | const |
\qmlproperty bool QtQuick3D::Loader3D::asynchronous
This property holds whether the component will be instantiated asynchronously. By default it is false
.
When used in conjunction with the \l source property, loading and compilation will also be performed in a background thread.
Loading asynchronously creates the objects declared by the component across multiple frames, and reduces the likelihood of glitches in animation. When loading asynchronously the status will change to Loader3D.Loading. Once the entire component has been created, the \l item will be available and the status will change to Loader.Ready.
Changing the value of this property to false
while an asynchronous load is in progress will force immediate, synchronous completion. This allows beginning an asynchronous load and then forcing completion if the Loader3D content must be accessed before the asynchronous load has completed.
To avoid seeing the items loading progressively set visible
appropriately, e.g.
Note that this property affects object instantiation only; it is unrelated to loading a component asynchronously via a network.
Definition at line 393 of file qquick3dloader.cpp.
|
signal |
|
overrideprotectedvirtual |
Invoked after the root component that caused this instantiation has completed construction.
At this point all static values and binding values have been assigned to the class.
Implements QQmlParserStatus.
Definition at line 430 of file qquick3dloader.cpp.
References active, and QQuick3DNode::componentComplete().
QObject * QQuick3DLoader::item | ( | ) | const |
\qmlproperty object QtQuick3D::Loader3D::item \readonly This property holds the top-level object that is currently loaded.
Definition at line 425 of file qquick3dloader.cpp.
|
signal |
|
signal |
qreal QQuick3DLoader::progress | ( | ) | const |
\qmlsignal QtQuick3D::Loader3D::loaded()
This signal is emitted when the \l status becomes Loader3D.Ready
, or on successful initial load.
The corresponding handler is onLoaded
.
\qmlproperty real QtQuick3D::Loader3D::progress \readonly
This property holds the progress of loading QML data from the network, from 0.0 (nothing loaded) to 1.0 (finished). Most QML files are quite small, so this value will rapidly change from 0 to 1.
Definition at line 347 of file qquick3dloader.cpp.
References QQmlComponent::progress.
|
signal |
void QQuick3DLoader::resetSourceComponent | ( | ) |
Definition at line 246 of file qquick3dloader.cpp.
References setSourceComponent().
void QQuick3DLoader::setActive | ( | bool | newVal | ) |
Definition at line 93 of file qquick3dloader.cpp.
References activeChanged(), QQmlIncubator::clear(), QQmlContextData::clearContextRecursively(), context, QObject::deleteLater(), emit, QQmlContextData::get(), itemChanged(), qmlContext(), QQuick3DObject::setParentItem(), QQuick3DNode::setVisible(), and statusChanged().
void QQuick3DLoader::setAsynchronous | ( | bool | a | ) |
Definition at line 398 of file qquick3dloader.cpp.
References asynchronousChanged(), emit, QQmlIncubator::forceCompletion(), QQuick3DObject::isComponentComplete(), QQmlComponent::isLoading(), and QQmlIncubator::isLoading().
Definition at line 172 of file qquick3dloader.cpp.
References setSource(), and url.
void QQuick3DLoader::setSource | ( | QQmlV4Function * | args | ) |
Definition at line 136 of file qquick3dloader.cpp.
References args, QV4::Scope::engine, QV4::StaticValue::isUndefined(), QV4::ExecutionEngine::qmlContext(), QV4::PersistentValue::set(), setSource(), and QV4::Encode::undefined().
Referenced by setSource(), and setSource().
void QQuick3DLoader::setSourceComponent | ( | QQmlComponent * | comp | ) |
Definition at line 230 of file qquick3dloader.cpp.
References emit, QQmlStrongJSQObjectReference< T >::setObject(), and sourceComponentChanged().
Referenced by resetSourceComponent().
QUrl QQuick3DLoader::source | ( | ) | const |
\qmlproperty url QtQuick3D::Loader3D::source This property holds the URL of the QML component to instantiate.
To unload the currently loaded object, set this property to an empty string, or set \l sourceComponent to undefined
. Setting source
to a new URL will also cause the item created by the previous URL to be unloaded.
Definition at line 167 of file qquick3dloader.cpp.
|
signal |
QQmlComponent * QQuick3DLoader::sourceComponent | ( | ) | const |
\qmlproperty Component QtQuick3D::Loader3D::sourceComponent This property holds the \l{Component} to instantiate.
\qml Item { Component { id: redCube Model { source: "#Cube" materials: DefaultMaterial { diffuseColor: "red" } } }
Loader3D { sourceComponent: redCube } Loader3D { sourceComponent: redCube; x: 10 } } \endqml
To unload the currently loaded object, set this property to undefined
.
\qmlmethod object QtQuick3D::Loader3D::setSource(url source, object properties)
Creates an object instance of the given source component that will have the given properties. The properties argument is optional. The instance will be accessible via the \l item property once loading and instantiation is complete.
If the \l active property is false
at the time when this function is called, the given source component will not be loaded but the source and initial properties will be cached. When the loader is made \l active, an instance of the source component will be created with the initial properties set.
Setting the initial property values of an instance of a component in this manner will {not} trigger any associated \l{Behavior}s.
Note that the cached properties will be cleared if the \l source or \l sourceComponent is changed after calling this function but prior to setting the loader \l active.
Definition at line 225 of file qquick3dloader.cpp.
|
signal |
QQuick3DLoader::Status QQuick3DLoader::status | ( | ) | const |
\qmlproperty enumeration QtQuick3D::Loader3D::status \readonly
This property holds the status of QML loading. It can be one of:
\value Loader3D.Null The loader is inactive or no QML source has been set. \value Loader3D.Ready The QML source has been loaded. \value Loader3D.Loading The QML source is currently being loaded. \value Loader3D.Error An error occurred while loading the QML source.
Use this status to provide an update or respond to the status change in some way. For example, you could:
\list
onStatusChanged
signal handler: \qml Loader3D { id: loader onStatusChanged: if (loader.status == Loader3D.Ready) console.log('Loaded') } \endqmlNote that if the source is a local file, the status will initially be Ready (or Error). While there will be no onStatusChanged signal in that case, the onLoaded will still be invoked.
Definition at line 291 of file qquick3dloader.cpp.
References QQmlComponent::Error, QQmlIncubator::Error, Error, QUrl::isEmpty(), QQmlComponent::Loading, QQmlIncubator::Loading, Loading, QQmlComponent::Null, Null, Ready, QQmlComponent::status, and QQmlIncubator::status().
|
signal |
|
readwrite |
Definition at line 37 of file qquick3dloader_p.h.
Referenced by componentComplete().
|
readwrite |
Definition at line 37 of file qquick3dloader_p.h.
|
read |
Definition at line 37 of file qquick3dloader_p.h.
|
read |
Definition at line 37 of file qquick3dloader_p.h.
|
readwrite |
Definition at line 37 of file qquick3dloader_p.h.
|
readwrite |
Definition at line 37 of file qquick3dloader_p.h.
|
read |
Definition at line 37 of file qquick3dloader_p.h.