Sur cette page

QCustom3DItem Class

La classe QCustom3DItem ajoute un élément personnalisé à un graphique. Plus d'informations...

En-tête : #include <QCustom3DItem>
CMake : find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake : QT += datavisualization
Depuis : QtDataVisualization 1.1
En QML : Custom3DItem
Hérite : QObject
Héritée par :

QCustom3DLabel et QCustom3DVolume

Propriétés

Fonctions publiques

QCustom3DItem(QObject *parent = nullptr)
QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)
virtual ~QCustom3DItem()
bool isPositionAbsolute() const
bool isScalingAbsolute() const
bool isShadowCasting() const
bool isVisible() const
QString meshFile() const
QVector3D position() const
QQuaternion rotation()
QVector3D scaling() const
void setMeshFile(const QString &meshFile)
void setPosition(const QVector3D &position)
void setPositionAbsolute(bool positionAbsolute)
void setRotation(const QQuaternion &rotation)
void setRotationAxisAndAngle(const QVector3D &axis, float angle)
void setScaling(const QVector3D &scaling)
void setScalingAbsolute(bool scalingAbsolute)
void setShadowCasting(bool enabled)
void setTextureFile(const QString &textureFile)
void setTextureImage(const QImage &textureImage)
void setVisible(bool visible)
QString textureFile() const

Signaux

void meshFileChanged(const QString &meshFile)
void positionAbsoluteChanged(bool positionAbsolute)
void positionChanged(const QVector3D &position)
void rotationChanged(const QQuaternion &rotation)
void scalingAbsoluteChanged(bool scalingAbsolute)
void scalingChanged(const QVector3D &scaling)
void shadowCastingChanged(bool shadowCasting)
void textureFileChanged(const QString &textureFile)
void visibleChanged(bool visible)

Description détaillée

Un élément personnalisé possède un maillage personnalisé, une position, une mise à l'échelle, une rotation et une texture optionnelle.

Voir également QAbstract3DGraph::addCustomItem().

Documentation sur les propriétés

meshFile : QString

Cette propriété contient le nom du fichier de maillage de l'élément.

L'élément dans le fichier doit être au format Wavefront OBJ et inclure les sommets, les normales et les UV. Il doit également être sous forme de triangles. Si le fichier manque de normales ou d'UV, le chargement échouera avec un message d'erreur sur la console et l'élément ne sera pas rendu.

Fonctions d'accès :

QString meshFile() const
void setMeshFile(const QString &meshFile)

Signal Notifier :

void meshFileChanged(const QString &meshFile)

position : QVector3D

Cette propriété contient la position de l'élément sous forme de QVector3D.

La valeur par défaut est QVector3D(0.0, 0.0, 0.0).

La position de l'élément est spécifiée soit en coordonnées de données, soit en coordonnées absolues, en fonction de la propriété positionAbsolute. Lors de l'utilisation de coordonnées absolues, les valeurs comprises entre -1.0...1.0 se situent à l'intérieur des plages d'axes.

Remarque : les éléments positionnés en dehors de toute plage d'axes ne sont pas rendus si positionAbsolute est false, sauf s'il s'agit d'un élément QCustom3DVolume qui serait partiellement visible et que scalingAbsolute est également false. Dans ce cas, la partie visible du volume sera rendue.

Fonctions d'accès :

QVector3D position() const
void setPosition(const QVector3D &position)

Signal de notification :

void positionChanged(const QVector3D &position)

Voir aussi positionAbsolute.

positionAbsolute : bool

Cette propriété indique si la position de l'élément doit être traitée en coordonnées de données ou en coordonnées absolues.

La valeur par défaut est false. Les éléments dont les coordonnées sont absolues sont toujours rendus, tandis que les éléments dont les coordonnées sont des données ne sont rendus que s'ils se situent dans les plages de l'axe.

Fonctions d'accès :

bool isPositionAbsolute() const
void setPositionAbsolute(bool positionAbsolute)

Signal du notificateur :

void positionAbsoluteChanged(bool positionAbsolute)

Voir également position.

rotation : QQuaternion

Cette propriété contient la rotation de l'article sous forme de QQuaternion.

La valeur par défaut est QQuaternion(0.0, 0.0, 0.0, 0.0).

Fonctions d'accès :

QQuaternion rotation()
void setRotation(const QQuaternion &rotation)

Signal de notification :

void rotationChanged(const QQuaternion &rotation)

scaling : QVector3D

Cette propriété contient l'échelle de l'article sous forme de QVector3D.

La valeur par défaut est QVector3D(0.1, 0.1, 0.1).

La mise à l'échelle de l'élément se fait soit en valeurs de données, soit en valeurs absolues, en fonction de la propriété scalingAbsolute. Le vecteur par défaut interprété en valeurs absolues fixe l'élément à 10 % de la hauteur du graphique, à condition que le maillage de l'élément soit normalisé et que les rapports d'aspect du graphique n'aient pas été modifiés par rapport aux valeurs par défaut.

Fonctions d'accès :

QVector3D scaling() const
void setScaling(const QVector3D &scaling)

Signal Notifier :

void scalingChanged(const QVector3D &scaling)

Voir aussi scalingAbsolute.

[since QtDataVisualization 1.2] scalingAbsolute : bool

Cette propriété indique si la mise à l'échelle des éléments doit être traitée en valeurs de données ou en valeurs absolues.

La valeur par défaut est true.

Les éléments dont la mise à l'échelle est absolue seront rendus à la même taille, quelles que soient les plages des axes. Les éléments avec une mise à l'échelle des données changeront leur taille apparente en fonction des plages de l'axe. Si positionAbsolute est true, cette propriété est ignorée et la mise à l'échelle est interprétée comme une valeur absolue. Si l'élément a une rotation, la mise à l'échelle des données est calculée sur l'élément non tourné. De même, pour les éléments QCustom3DVolume, l'écrêtage de la plage est calculé sur l'élément non tourné.

Remarque : seule la mise à l'échelle absolue est prise en charge pour les éléments QCustom3DLabel ou pour les éléments personnalisés utilisés dans les graphiques polar.

Remarque : Le maillage de l'élément personnalisé doit être normalisé en fonction de la plage [-1 ,1], sinon la mise à l'échelle des données ne sera pas précise.

Cette propriété a été introduite dans QtDataVisualization 1.2.

Fonctions d'accès :

bool isScalingAbsolute() const
void setScalingAbsolute(bool scalingAbsolute)

Signal Notifier :

void scalingAbsoluteChanged(bool scalingAbsolute)

Voir également scaling et positionAbsolute.

shadowCasting : bool

Cette propriété indique si la projection d'ombres est activée pour l'élément.

La valeur par défaut est true. Si false, l'élément ne projette pas d'ombres, quelle que soit la valeur de QAbstract3DGraph::ShadowQuality.

Fonctions d'accès :

bool isShadowCasting() const
void setShadowCasting(bool enabled)

Signal de notification :

void shadowCastingChanged(bool shadowCasting)

textureFile : QString

Cette propriété contient le nom du fichier de texture de l'élément.

Si cette propriété et l'image de texture ne sont pas définies, une texture gris uni sera utilisée.

Remarque : pour économiser de la mémoire, le fichier QImage est effacé après la création d'une texture.

Fonctions d'accès :

QString textureFile() const
void setTextureFile(const QString &textureFile)

Signal de notification :

void textureFileChanged(const QString &textureFile)

visible : bool

Cette propriété indique la visibilité de l'élément.

La valeur par défaut est true.

Fonctions d'accès :

bool isVisible() const
void setVisible(bool visible)

Signal du notificateur :

void visibleChanged(bool visible)

Fonction membre Documentation

[explicit] QCustom3DItem::QCustom3DItem(QObject *parent = nullptr)

Construit un objet 3D personnalisé avec l'adresse parent.

[explicit] QCustom3DItem::QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)

Construit un élément 3D personnalisé avec l'image spécifiée meshFile, position, scaling, rotation, texture et l'image optionnelle parent.

[virtual noexcept] QCustom3DItem::~QCustom3DItem()

Supprime l'élément 3D personnalisé.

[invokable] void QCustom3DItem::setRotationAxisAndAngle(const QVector3D &axis, float angle)

Une fonction de commodité pour construire le quaternion de rotation à partir de axis et angle.

Note : Cette fonction peut être invoquée via le système de méta-objets et à partir de QML. Voir Q_INVOKABLE.

Voir aussi rotation.

void QCustom3DItem::setTextureImage(const QImage &textureImage)

Définit la valeur de textureImage comme QImage pour l'élément. Par défaut, la texture est gris uni.

Remarque : pour économiser de la mémoire, la valeur de QImage est effacée après la création d'une texture.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.