Sur cette page

QCustom3DItem Class

La classe QCustom3DItem permet d'ajouter un élément personnalisé à un graphique. En savoir plus...

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 de : QObject
Hérité par :

QCustom3DLabel et QCustom3DVolume

Statut : Obsolète

Cette classe est obsolète. Nous déconseillons fortement de l'utiliser dans du nouveau code.

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é dispose d'un maillage, d'une position, d'une échelle et d'une rotation personnalisés, ainsi que d'une texture facultative.

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'objet contenu dans le fichier doit être au format Wavefront OBJ et inclure les sommets, les normales et les coordonnées UV. Il doit également être constitué de triangles. Si le fichier ne contient ni normales ni coordonnées UV, le chargement échouera et un message d'erreur s'affichera dans la console ; l'objet ne sera pas rendu.

Fonctions d'accès :

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

Signal de notification :

void meshFileChanged(const QString &meshFile)

position : QVector3D

Cette propriété stocke la position de l'élément sous la forme d'un objet de type ` 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, selon la propriété « positionAbsolute ». En cas d’utilisation de coordonnées absolues, les valeurs comprises entre -1.0...1.0 se situent dans les plages des axes.

Remarque : les éléments positionnés en dehors de toute plage d’axe ne sont pas affichés si positionAbsolute est défini sur false, sauf si l’élément est un QCustom3DVolume qui serait partiellement visible et si scalingAbsolute est également défini sur false. Dans ce cas, la partie visible du volume sera affichée.

Fonctions d’accès :

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

Signal de notification :

void positionChanged(const QVector3D &position)

Voir également positionAbsolute.

positionAbsolute : bool

Cette propriété détermine si la position des éléments doit être gérée en coordonnées de données ou en coordonnées absolues.

La valeur par défaut est « false ». Les éléments avec des coordonnées absolues seront toujours affichés, tandis que ceux avec des coordonnées de données ne le seront que s'ils se trouvent dans les plages des axes.

Fonctions d'accès :

bool isPositionAbsolute() const
void setPositionAbsolute(bool positionAbsolute)

Signal de notification :

void positionAbsoluteChanged(bool positionAbsolute)

Voir également position.

rotation : QQuaternion

Cette propriété stocke la rotation de l'élément sous la forme d'un objet ` 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é stocke l'échelle de l'élément sous la forme d'un objet de type ` QVector3D`.

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

La mise à l'échelle des éléments s'effectue soit en valeurs de données, soit en valeurs absolues, selon la propriété « scalingAbsolute ». Le vecteur par défaut, interprété comme des valeurs absolues, définit l'élément à 10 % de la hauteur du graphique, à condition que le maillage de l'élément soit normalisé et que les proportions du graphique n'aient pas été modifiées par rapport aux valeurs par défaut.

Fonctions d’accès :

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

Signal de notification :

void scalingChanged(const QVector3D &scaling)

Voir également scalingAbsolute.

[since QtDataVisualization 1.2] scalingAbsolute : bool

Cette propriété détermine si la mise à l'échelle des éléments doit être géré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 définie en valeurs absolues seront affichés à la même taille, quelles que soient les plages des axes. Les éléments dont la mise à l'échelle est basée sur les données verront leur taille apparente varier en fonction des plages des axes. Si positionAbsolute est défini sur true, cette propriété est ignorée et la mise à l'échelle est interprétée comme une valeur absolue. Si l'élément est en rotation, la mise à l'échelle basée sur les données est calculée sur l'élément non pivoté. De même, pour les éléments QCustom3DVolume, le découpage de plage est calculé sur l'élément non pivoté.

Remarque : Seul le 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é dans la plage [-1 ,1], sinon la mise à l’échelle des données ne sera pas précise.

Cette énumération a été introduite dans QtDataVisualization 1.2.

Fonctions d’accès :

bool isScalingAbsolute() const
void setScalingAbsolute(bool scalingAbsolute)

Signal de notification :

void scalingAbsoluteChanged(bool scalingAbsolute)

Voir également scaling et positionAbsolute.

shadowCasting : bool

Cette propriété détermine si l'ombrage de l'élément est activé.

La valeur par défaut est « true ». Si la valeur est « 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 grise unie sera utilisée.

Remarque : afin d'économiser de la mémoire, l'QImage e chargée à partir du fichier est effacée une fois la texture créée.

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é définit la visibilité de l'élément.

Valeur par défaut : « true ».

Fonctions d'accès :

bool isVisible() const
void setVisible(bool visible)

Signal de notification :

void visibleChanged(bool visible)

Documentation des fonctions membres

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

Crée un objet 3D personnalisé à l'aide de l'parent spécifiée.

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

Crée un élément 3D personnalisé avec les paramètres suivants : meshFile, position, scaling, rotation, texture (image) et, en option, parent.

[virtual noexcept] QCustom3DItem::~QCustom3DItem()

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

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

Une fonction pratique permettant de construire le quaternion de rotation à partir de axis et angle.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

Voir également 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 d'un gris uni.

Remarque : afin d’ économiser de la mémoire, l’ QImage fournie est effacée une fois la texture créée.

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