QNode Class | Qt 3D 6.8.0
Description: QNode is the base class of all Qt3D node classes used to build a Qt3D scene.

- Qt 6.8
- Qt 3D
- C++ Classes
- Qt3DCore
- QNode
- Qt 6.8.0 Reference Documentation

# QNode Class

class Qt3DCore::QNode

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

Header: | #include <QNode>
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3DCore) target_link_libraries(mytarget PRIVATE Qt6::3DCore)
qmake: | QT += 3dcore
Inherits: | QObject
Inherited By: | Qt3DAnimation::QAbstractAnimationClip, Qt3DAnimation::QAbstractClipBlendNode, Qt3DAnimation::QChannelMapper, Qt3DCore::QAbstractSkeleton, Qt3DCore::QAttribute, Qt3DCore::QBuffer, Qt3DCore::QComponent, Qt3DCore::QEntity, Qt3DCore::QGeometry, Qt3DCore::QGeometryView, Qt3DCore::QJoint, Qt3DInput::QAbstractActionInput, Qt3DInput::QAbstractAxisInput, Qt3DInput::QAbstractPhysicalDevice, Qt3DInput::QAction, Qt3DInput::QAxis, Qt3DInput::QAxisSetting, Qt3DRender::QAbstractTexture, Qt3DRender::QAbstractTextureImage, Qt3DRender::QEffect, Qt3DRender::QFilterKey, Qt3DRender::QFrameGraphNode, Qt3DRender::QParameter, Qt3DRender::QPickingSettings, Qt3DRender::QRenderPass, Qt3DRender::QRenderState, Qt3DRender::QRenderTargetOutput, Qt3DRender::QShaderImage, Qt3DRender::QShaderProgram, Qt3DRender::QShaderProgramBuilder, Qt3DRender::QTechnique, and Qt3DRender::Quick::QScene2D

- List of all members, including inherited members

## Properties

- enabled : bool
- parent : Qt3DCore::QNode*

## Public Functions

| QNode(Qt3DCore::QNode *parent = nullptr)
bool | blockNotifications(bool block)
Qt3DCore::QNodeVector | childNodes() const
Qt3DCore::QNodeId | id() const
bool | isEnabled() const
bool | notificationsBlocked() const
Qt3DCore::QNode * | parentNode() const

## Public Slots

void | setEnabled(bool isEnabled)
void | setParent(Qt3DCore::QNode *parent)

## Signals

void | enabledChanged(bool enabled)
void | nodeDestroyed()
void | parentChanged(QObject *parent)

## Related Non-Members

| QNodePtr
| QNodeVector
Qt3DCore::QNodeId | qIdForNode(Qt3DCore::QNode *node)
Qt3DCore::QNodeIdVector | qIdsForNodes(const T &nodes)

## Detailed Description

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

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

See also QEntity and QComponent.

## Property Documentation

### enabled : bool

Holds the QNode enabled flag. By default a QNode is always enabled.

Note: 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.

Access functions:

bool | isEnabled() const
void | setEnabled(bool isEnabled)

Notifier signal:

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.

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

Access functions:

Qt3DCore::QNode * | parentNode() const
void | setParent(Qt3DCore::QNode *parent)

Notifier signal:

void | parentChanged(QObject *parent)

## Member Function Documentation

### `[explicit]` QNode::QNode(Qt3DCore::QNode *parent = nullptr)

Creates a new QNode instance with parent parent.

Note: 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.

See also setParent().

### bool QNode::blockNotifications(bool block)

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

The return value is the previous value of notificationsBlocked().

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

See also notificationsBlocked().

### Qt3DCore::QNodeVector QNode::childNodes() const

Returns a list filled with the QNode children of the current QNode instance.

### Qt3DCore::QNodeId QNode::id() const

Returns the id that uniquely identifies the QNode instance.

### `[signal]` void QNode::nodeDestroyed()

Emitted when the node is destroyed.

### bool QNode::notificationsBlocked() const

Returns `true` if aspect notifications are blocked; otherwise returns `false`. By default, notifications are not blocked.

See also blockNotifications().

## Related Non-Members

### `[alias]` QNodePtr

A shared pointer for QNode.

### `[alias]` QNodeVector

List of QNode pointers.

### Qt3DCore::QNodeId qIdForNode(Qt3DCore::QNode *node)

Returns node id for node.

### template <typename T> Qt3DCore::QNodeIdVector qIdsForNodes(const T &nodes)

Returns vector of node ids for nodes.