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 : |
- Liste de tous les membres, y compris les membres hérités
- QCustom3DItem fait partie des classes C++Qt Graphs pour la 3D.
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.