Qt 3D: Exemple de formes de base en C++
Présente quatre formes de base proposées par Qt 3D et configure un maillage pour chacune d'entre elles.

L’exemple «Formes de base » présente quatre formes de base proposées par Qt 3D: un tore, un cylindre, un cube et une sphère. Il montre également comment intégrer une scène Qt 3D dans un widget et la connecter à d’autres widgets.
Exécution de l’exemple
Vous pouvez exécuter l’exemple à partir de :
- Qt Creator
Ouvrez le mode « Welcome » et sélectionnez l’exemple à l’adresse Examples. Pour plus d’informations, consultez Qt Creator: Tutoriel : Compiler et exécuter.
- Qt Extension for Visual Studio Code
Exécutez la commande « Qt: Open Qt examples » à partir de Command Palette, puis sélectionnez l’exemple dans la liste. Pour plus d’informations, consultez Qt Extension for Visual Studio Code: Tutoriel : Compiler et exécuter.
Configuration d’un maillage toroïdal
À titre d’exemple, nous allons voir comment configurer un maillage torique. Tout d’abord, nous instancions l’ QTorusMesh, puis nous définissons les paramètres spécifiques au maillage, qui, pour un tore, sont le rayon, le rayon mineur, ainsi que le nombre d’anneaux et de tranches.
m_torus = new Qt3DExtras::QTorusMesh();
m_torus->setRadius(1.0f);
m_torus->setMinorRadius(0.4f);
m_torus->setRings(100);
m_torus->setSlices(20);La taille et la position du tore peuvent être ajustées à l’aide de composants de transformation. Nous créons des composants d’échelle, de translation et de rotation, puis nous les ajoutons au composant « QTransform ».
Qt3DCore::QTransform *torusTransform = new Qt3DCore::QTransform();
torusTransform->setScale(2.0f);
torusTransform->setRotation(QQuaternion::fromAxisAndAngle(QVector3D(0.0f, 1.0f, 0.0f), 25.0f));
torusTransform->setTranslation(QVector3D(5.0f, 4.0f, 0.0f));Pour modifier la couleur diffuse du maillage, nous créons un « QPhongMaterial » et définissons sa couleur diffuse.
Qt3DExtras::QPhongMaterial *torusMaterial = new Qt3DExtras::QPhongMaterial();
torusMaterial->setDiffuse(QColor(QRgb(0xbeb32b)));La dernière étape consiste à ajouter le tore dans une arborescence d’entités ; pour cela, nous créons une entité « QEntity » avec une entité parente, puis y ajoutons les composants « mesh », « material » et « transform » créés précédemment.
m_torusEntity = new Qt3DCore::QEntity(m_rootEntity);
m_torusEntity->addComponent(m_torus);
m_torusEntity->addComponent(torusMaterial);
m_torusEntity->addComponent(torusTransform);Nous pouvons contrôler la visibilité de l’entité en définissant si elle possède ou non un parent. Autrement dit, si elle fait partie ou non d’un arbre d’entités.
void SceneModifier::enableTorus(bool enabled)
{
m_torusEntity->setEnabled(enabled);
}© 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.