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 Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake : QT += graphs
En QML : Custom3DItem
Hérite de : QObject
Hérité par :

QCustom3DLabel et QCustom3DVolume

Propriétés

Fonctions publiques

QCustom3DItem(QObject *parent = nullptr)
QCustom3DItem(const QString &meshFile, QVector3D position, QVector3D scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)
virtual ~QCustom3DItem() override
bool isPositionAbsolute() const
bool isRotationAbsolute() 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(QVector3D position)
void setPositionAbsolute(bool positionAbsolute)
void setRotation(const QQuaternion &rotation)
void setRotationAbsolute(bool rotationAbsolute)
void setRotationAxisAndAngle(QVector3D axis, float angle)
void setScaling(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(QVector3D position)
void rotationAbsoluteChanged(bool newRotationAbsolute)
void rotationChanged(const QQuaternion &rotation)
void scalingAbsoluteChanged(bool scalingAbsolute)
void scalingChanged(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 Q3DGraphsWidgetItem::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 contenu dans le fichier doit être au format maillage. Les autres types de fichiers peuvent être convertis à l'aide de l'outil d'importation de ressources Balsam. Il est recommandé que les fichiers de maillage incluent les sommets, les normales et les coordonnées UV.

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 ». Lorsque des coordonnées absolues sont utilisées, 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(QVector3D position)

Signal de notification :

void positionChanged(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 de type « 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)

[since 6.11] rotationAbsolute : bool

Cette propriété détermine si la rotation des éléments doit être gérée selon les coordonnées de l'axe des données ou selon des coordonnées absolues.

Définit si la rotation 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 avec une rotation absolue seront pivotés selon les coordonnées par défaut, quel que soit l'axe. Les éléments avec une rotation en données de données pivoteront selon les coordonnées de l'axe.

Cette énumération a été introduite dans Qt 6.11.

Fonctions d'accès :

bool isRotationAbsolute() const
void setRotationAbsolute(bool rotationAbsolute)

Signal de notification :

void rotationAbsoluteChanged(bool newRotationAbsolute)

Voir également 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 rapports d'aspect du graphique n'aient pas été modifiés par rapport aux valeurs par défaut.

Remarque : dans Qt 6.8, les modèles étaient incorrectement considérés comme mis à l'échelle à une taille de 1 (-0,5...0,5) par défaut, alors qu’ils sont en réalité mis à l’échelle à une taille de 2 (-1...1). De ce fait, tous les éléments personnalisés à partir de Qt 6.9 ont une taille deux fois supérieure à celle de Qt 6.8

Fonctions d’accès :

QVector3D scaling() const
void setScaling(QVector3D scaling)

Signal de notification :

void scalingChanged(QVector3D scaling)

Voir également scalingAbsolute.

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 de type « QCustom3DLabel » ou pour les éléments personnalisés utilisés dans les graphiques de type « polar ».

Remarque : le maillage de l’élément personnalisé doit être normalisé sur l’intervalle [-1 ,1], sinon la mise à l’échelle des données ne sera pas précise.

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 le rendu des ombres pour 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 Q3DGraphsWidgetItem::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 élément 3D personnalisé à l'aide de l'parent spécifiée.

[explicit] QCustom3DItem::QCustom3DItem(const QString &meshFile, QVector3D position, 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`.

[override virtual noexcept] QCustom3DItem::~QCustom3DItem()

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

[invokable] void QCustom3DItem::setRotationAxisAndAngle(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.