QNode Class

( Qt3DCore::QNode )

QNode is the base class of all Qt3D node classes used to build a Qt3D scene. 更多...

頭: #include <QNode>
qmake: QT += 3dcore
Since: Qt 5.5
繼承: QObject
繼承者: Qt3DAnimation::QAbstractAnimationClip , Qt3DAnimation::QAbstractClipBlendNode , Qt3DCore::QComponent , Qt3DCore::QEntity , Qt3DInput::QAbstractActionInput , Qt3DInput::QAbstractAxisInput , Qt3DInput::QAbstractPhysicalDevice , Qt3DInput::QAction , Qt3DInput::QAxis , Qt3DInput::QAxisSetting , Qt3DRender::QAbstractTexture , Qt3DRender::QAbstractTextureImage , Qt3DRender::QAttribute , Qt3DRender::QBuffer , Qt3DRender::QEffect , Qt3DRender::QFilterKey , Qt3DRender::QFrameGraphNode , Qt3DRender::QGeometry , Qt3DRender::QParameter , Qt3DRender::QPickingSettings , Qt3DRender::QRenderPass , Qt3DRender::QRenderState , Qt3DRender::QRenderTargetOutput , Qt3DRender::QShaderProgram , Qt3DRender::QTechnique ,和 Qt3DRender::Quick::QScene2D

公共類型

enum PropertyTrackingMode { TrackFinalValues, DontTrackValues, TrackAllValues }

特性

公共函數

QNode (QNode * parent = nullptr)
bool blockNotifications (bool block )
QNodeVector childNodes () const
void clearPropertyTracking (const QString & propertyName )
void clearPropertyTrackings ()
PropertyTrackingMode defaultPropertyTrackingMode () const
QNodeId id () const
bool isEnabled () const
bool notificationsBlocked () const
QNode * parentNode () const
PropertyTrackingMode propertyTracking (const QString & propertyName ) const
void setPropertyTracking (const QString & propertyName , PropertyTrackingMode trackMode )

公共槽

void setDefaultPropertyTrackingMode (PropertyTrackingMode mode )
void setEnabled (bool isEnabled )
void setParent (QNode * parent )

信號

void defaultPropertyTrackingModeChanged (PropertyTrackingMode mode )
void enabledChanged (bool enabled )
void nodeDestroyed ()
void parentChanged (QObject * parent )

保護函數

void notifyObservers (const QSceneChangePtr & change )
virtual void sceneChangeEvent (const QSceneChangePtr & change )
typedef QNodePtr
typedef QNodeVector
QNodeId qIdForNode (QNode * node )
QNodeIdVector qIdsForNodes (const T & nodes )

額外繼承成員

詳細描述

QNode is the base class of all Qt3D node classes used to build a Qt3D scene.

The owernship of QNode is determined by the QObject parent/child relationship between nodes. By itself, a QNode has no visual appearance and no particular meaning, it is there as a way of building a node based tree structure.

The parent of a QNode instance can only be another QNode 實例。

每個 QNode instance has a unique id that allows it to be recognizable from other instances.

When properties are defined on a QNode subclass, their NOTIFY signal will automatically generate notifications that the Qt3D backend aspects will receive.

另請參閱 QEntity and QComponent .

成員類型文檔編製

enum QNode:: PropertyTrackingMode

特性文檔編製

defaultPropertyTrackingMode : PropertyTrackingMode

Holds the default property tracking mode which determines whether a QNode should be listening for property updates. This only applies to properties which haven't been overridden by a call to setPropertyTracking .

By default it is set to QNode::TrackFinalValues

訪問函數:

PropertyTrackingMode defaultPropertyTrackingMode () const
void setDefaultPropertyTrackingMode (PropertyTrackingMode mode )

通知程序信號:

void defaultPropertyTrackingModeChanged (PropertyTrackingMode mode )

enabled : bool

保持 QNode enabled flag. By default a QNode is always enabled.

注意: the interpretation of what enabled means is aspect-dependent. Even if enabled is set to false , some aspects may still consider the node in some manner. This is documented on a class by class basis.

訪問函數:

bool isEnabled () const
void setEnabled (bool isEnabled )

通知程序信號:

void enabledChanged (bool enabled )

parent : Qt3DCore::QNode *

Holds the immediate QNode parent, or null if the node has no parent.

Setting the parent will notify the backend aspects about current QNode instance's parent change.

注意: if parent happens to be null, this will actually notify that the current QNode instance was removed from the scene.

訪問函數:

QNode * parentNode () const
void setParent (QNode * parent )

通知程序信號:

void parentChanged (QObject * parent )

成員函數文檔編製

QNode:: QNode ( QNode * parent = nullptr)

創建新的 QNode instance with parent parent .

注意: The backend aspects will be notified that a QNode instance is part of the scene only if it has a parent; unless this is the root node of the Qt3D scene.

另請參閱 setParent ().

bool QNode:: blockNotifications ( bool block )

block is true , property change notifications sent by this object to aspects are blocked. If block is false , no such blocking will occur.

返迴值是先前值的 notificationsBlocked ().

Note that the other notification types will be sent even if the notifications for this object have been blocked.

另請參閱 notificationsBlocked ().

QNodeVector QNode:: childNodes () const

Returns a list filled with the QNode children of the current QNode 實例。

void QNode:: clearPropertyTracking (const QString & propertyName )

void QNode:: clearPropertyTrackings ()

QNodeId QNode:: id () const

Returns the id that uniquely identifies the QNode 實例。

[signal] void QNode:: nodeDestroyed ()

emitted when the node is destroyed.

bool QNode:: notificationsBlocked () const

返迴 true if aspect notifications are blocked; otherwise returns false . By default, notifications are not blocked.

另請參閱 blockNotifications ().

[protected] void QNode:: notifyObservers (const QSceneChangePtr & change )

發送 change QSceneChangePtr to any QBackendNodes in the registered aspects that correspond to this QNode .

For the common case of a QObject property change, QNode handles this for you automatically by sending a QPropertyUpdatedChange event to the backend nodes. You only need to call this function if you wish to send a specific type of change in place of the automatic handling.

PropertyTrackingMode QNode:: propertyTracking (const QString & propertyName ) const

另請參閱 setPropertyTracking ().

[virtual protected] void QNode:: sceneChangeEvent (const QSceneChangePtr & change )

Called when one or more backend aspects sends a notification change to the current Qt3DCore::QNode 實例。

注意: This method should be reimplemented in your subclasses to properly handle the change .

void QNode:: setPropertyTracking (const QString & propertyName , PropertyTrackingMode trackMode )

另請參閱 propertyTracking ().

相關非成員

typedef Qt3DCore:: QNodePtr

共享指針為 QNode .

typedef Qt3DCore:: QNodeVector

List of QNode pointers.

QNodeId Qt3DCore:: qIdForNode ( QNode * node )

Returns node id for node .

QNodeIdVector Qt3DCore:: qIdsForNodes (const T & nodes )

Returns vector of node ids for nodes .