Qt 3D: Beispiel für Grundformen in C++
Zeigt vier Grundformen, die Qt 3D anbietet, und erstellt für jede davon ein Netz.

„Grundformen“ zeigt vier Grundformen, die Qt 3D bietet: einen Torus, einen Zylinder, einen Würfel und eine Kugel. Das Beispiel zeigt außerdem, wie man eine „ Qt 3D “-Szene in ein Widget einbettet und mit anderen Widgets verbindet.
Ausführen des Beispiels
Sie können das Beispiel wie folgt ausführen:
- Qt Creator
Öffnen Sie den Modus „ Welcome “ und wählen Sie das Beispiel unter Examples aus. Weitere Informationen finden Sie unter Qt Creator: Tutorial: Erstellen und Ausführen.
- Qt Extension for Visual Studio Code
Führen Sie den Befehl „ Qt: Open Qt examples “ über die Seite „ Command Palette “ aus und wählen Sie das Beispiel aus der Liste aus. Weitere Informationen finden Sie unter Qt Extension for Visual Studio Code: Tutorial: Erstellen und Ausführen.
Einrichten eines Torus-Netzes
Als Beispiel zeigen wir, wie ein Torus-Netz eingerichtet wird. Zunächst instanziieren wir die „ QTorusMesh “ und legen dann die netzspezifischen Parameter fest, die für einen Torus aus Radius, Nebenradius sowie der Anzahl der Ringe und Schichten bestehen.
m_torus = new Qt3DExtras::QTorusMesh();
m_torus->setRadius(1.0f);
m_torus->setMinorRadius(0.4f);
m_torus->setRings(100);
m_torus->setSlices(20);Größe und Position des Torus lassen sich mit Transformationskomponenten anpassen. Wir erstellen Skalierungs-, Translations- und Rotationskomponenten und fügen sie der „ QTransform “-Komponente hinzu.
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));Um die diffuse Farbe des Meshes zu ändern, erstellen wir ein „ QPhongMaterial “ und legen dessen diffuse Farbe fest.
Qt3DExtras::QPhongMaterial *torusMaterial = new Qt3DExtras::QPhongMaterial();
torusMaterial->setDiffuse(QColor(QRgb(0xbeb32b)));Der letzte Schritt besteht darin, den Torus in einen Entitätsbaum einzufügen. Dazu erstellen wir eine „ QEntity “-Komponente mit einer übergeordneten Entität und fügen die zuvor erstellten Mesh-, Material- und Transformationskomponenten darin ein.
m_torusEntity = new Qt3DCore::QEntity(m_rootEntity);
m_torusEntity->addComponent(m_torus);
m_torusEntity->addComponent(torusMaterial);
m_torusEntity->addComponent(torusTransform);Wir können die Sichtbarkeit der Entität steuern, indem wir festlegen, ob sie eine übergeordnete Entität hat oder nicht. Das heißt, ob sie Teil eines Entitätsbaums ist oder nicht.
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.