QCustom3DItem Class
Die Klasse „QCustom3DItem“ fügt einem Diagramm ein benutzerdefiniertes Element hinzu. Mehr...
| Header: | #include <QCustom3DItem> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) |
| qmake: | QT += graphs |
| In QML: | Custom3DItem |
| Erbt von: | QObject |
| Vererbt an: |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QCustom3DItem ist Teil von „Qt Graphs “ – C++-Klassen für 3D.
Eigenschaften
|
|
Öffentliche Funktionen
| 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 |
Signale
| 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) |
Detaillierte Beschreibung
Ein benutzerdefiniertes Element verfügt über ein benutzerdefiniertes Mesh, eine Position, eine Skalierung, eine Rotation und eine optionale Textur.
Siehe auch „ Q3DGraphsWidgetItem::addCustomItem()“.
Eigenschaftsdokumentation
meshFile : QString
Diese Eigenschaft enthält den Dateinamen der Mesh-Datei des Objekts.
Das Element in der Datei muss im Mesh-Format vorliegen. Andere Dateiformate können mit dem Balsam-Asset-Import-Tool konvertiert werden. Es wird empfohlen, dass die Mesh-Dateien Scheitelpunkte, Normalen und UV-Koordinaten enthalten.
Zugriffsfunktionen:
| QString | meshFile() const |
| void | setMeshFile(const QString &meshFile) |
Benachrichtigungssignal:
| void | meshFileChanged(const QString &meshFile) |
position : QVector3D
Diese Eigenschaft speichert die Position des Elements als „ QVector3D “.
Der Standardwert ist „ QVector3D(0.0, 0.0, 0.0) “.
Die Elementposition wird je nach der Eigenschaft „ positionAbsolute “ entweder in Datenkoordinaten oder in absoluten Koordinaten angegeben. Bei Verwendung absoluter Koordinaten liegen Werte zwischen -1.0...1.0 innerhalb der Achsenbereiche.
Hinweis: Elemente , die außerhalb eines Achsenbereichs positioniert sind, werden nicht gerendert, wenn „ positionAbsolute “ auf „ false “ gesetzt ist, es sei denn, es handelt sich um ein „ QCustom3DVolume “, das teilweise sichtbar wäre, und „ scalingAbsolute “ ist ebenfalls auf „ false “ gesetzt. In diesem Fall wird der sichtbare Teil des Volumens gerendert.
Zugriffsfunktionen:
| QVector3D | position() const |
| void | setPosition(QVector3D position) |
Benachrichtigungssignal:
| void | positionChanged(QVector3D position) |
Siehe auch positionAbsolute.
positionAbsolute : bool
Diese Eigenschaft legt fest, ob die Position eines Elements in Datenkoordinaten oder in absoluten Koordinaten behandelt werden soll.
Standardwert ist „ false “. Elemente mit absoluten Koordinaten werden immer dargestellt, während Elemente mit Datenkoordinaten nur dargestellt werden, wenn sie innerhalb der Achsenbereiche liegen.
Zugriffsfunktionen:
| bool | isPositionAbsolute() const |
| void | setPositionAbsolute(bool positionAbsolute) |
Benachrichtigungssignal:
| void | positionAbsoluteChanged(bool positionAbsolute) |
Siehe auch „ position “.
rotation : QQuaternion
Diese Eigenschaft speichert die Drehung des Elements als „ QQuaternion “.
Standardwert ist „ QQuaternion(0.0, 0.0, 0.0, 0.0) “.
Zugriffsfunktionen:
| QQuaternion | rotation() |
| void | setRotation(const QQuaternion &rotation) |
Benachrichtigungssignal:
| void | rotationChanged(const QQuaternion &rotation) |
[since 6.11] rotationAbsolute : bool
Diese Eigenschaft legt fest, ob die Drehung von Elementen anhand der Koordinaten der Datenachse oder anhand absoluter Koordinaten behandelt werden soll.
Legt fest, ob die Drehung von Elementen anhand von Datenwerten oder anhand von absoluten Werten erfolgen soll. Der Standardwert ist „ true “. Elemente mit absoluter Drehung werden unabhängig von der Achse anhand der Standardkoordinaten gedreht. Elemente mit datenbasierter Drehung werden entsprechend den Achsenkoordinaten gedreht.
Diese Aufzählung wurde in Qt 6.11 eingeführt.
Zugriffsfunktionen:
| bool | isRotationAbsolute() const |
| void | setRotationAbsolute(bool rotationAbsolute) |
Notifier-Signal:
| void | rotationAbsoluteChanged(bool newRotationAbsolute) |
Siehe auch „ rotation “.
scaling : QVector3D
Diese Eigenschaft speichert die Skalierung des Elements als „ QVector3D “.
Der Standardwert ist „ QVector3D(0.1, 0.1, 0.1) “.
Die Skalierung des Elements erfolgt je nach der Eigenschaft „ scalingAbsolute “ entweder anhand von Datenwerten oder anhand von absoluten Werten. Der als absolute Werte interpretierte Standardvektor legt das Element auf 10 % der Höhe des Diagramms fest, vorausgesetzt, das Element-Mesh ist normalisiert und die Seitenverhältnisse des Diagramms wurden nicht gegenüber den Standardwerten geändert.
Hinweis: In Qt 6.8 wurde fälschlicherweise angenommen, dass Elemente standardmäßig auf eine Größe von 1 (-0,5…0,5) skaliert werden, obwohl sie in Wirklichkeit auf die Größe 2 (-1…1) skaliert werden. Aus diesem Grund sind alle benutzerdefinierten Elemente ab Qt 6.9 doppelt so groß wie in Qt 6.8
Zugriffsfunktionen:
| QVector3D | scaling() const |
| void | setScaling(QVector3D scaling) |
Notifier-Signal:
| void | scalingChanged(QVector3D scaling) |
Siehe auch scalingAbsolute.
scalingAbsolute : bool
Diese Eigenschaft legt fest, ob die Skalierung von Elementen anhand von Datenwerten oder anhand von absoluten Werten erfolgen soll.
Standardwert ist „ true “.
Elemente mit absoluter Skalierung werden unabhängig von den Achsenbereichen in derselben Größe dargestellt. Elemente mit Datenskalierung ändern ihre sichtbare Größe entsprechend den Achsenbereichen. Wenn „ positionAbsolute “ auf „ true “ gesetzt ist, wird diese Eigenschaft ignoriert und die Skalierung als absoluter Wert interpretiert. Wenn das Element gedreht ist, wird die Datenskalierung auf das ungedrehte Element angewendet. Ebenso wird bei „ QCustom3DVolume “-Elementen die Bereichsbeschneidung auf das ungedrehte Element angewendet.
Hinweis: Für Elemente vom Typ „ QCustom3DLabel “ oder für benutzerdefinierte Elemente, die in „ polar “-Diagrammen verwendet werden, wirdnur die absolute Skalierung unterstützt.
Hinweis: Das Gitter des benutzerdefinierten Elements muss auf den Bereich [-1 ,1] normiert sein, da die Datenskalierung sonst nicht korrekt ist.
Zugriffsfunktionen:
| bool | isScalingAbsolute() const |
| void | setScalingAbsolute(bool scalingAbsolute) |
Notifier-Signal:
| void | scalingAbsoluteChanged(bool scalingAbsolute) |
Siehe auch „ scaling “ und „ positionAbsolute “.
shadowCasting : bool
Diese Eigenschaft legt fest, ob für das Objekt Schatten geworfen werden.
Der Standardwert ist „ true “. Wenn „ false “ gesetzt ist, wirft das Element unabhängig von „Q3DGraphsWidgetItem::ShadowQuality“ keine Schatten.
Zugriffsfunktionen:
| bool | isShadowCasting() const |
| void | setShadowCasting(bool enabled) |
Notifier-Signal:
| void | shadowCastingChanged(bool shadowCasting) |
textureFile : QString
Diese Eigenschaft enthält den Namen der Texturdatei für das Element.
Sind sowohl diese Eigenschaft als auch das Texturbild nicht festgelegt, wird eine einfarbige graue Textur verwendet.
Hinweis: Um Speicherplatz zu sparen, wird das aus der Datei geladene „ QImage “ gelöscht, sobald eine Textur erstellt wurde.
Zugriffsfunktionen:
| QString | textureFile() const |
| void | setTextureFile(const QString &textureFile) |
Benachrichtigungssignal:
| void | textureFileChanged(const QString &textureFile) |
visible : bool
Diese Eigenschaft gibt die Sichtbarkeit des Elements an.
Standardwert ist „ true “.
Zugriffsfunktionen:
| bool | isVisible() const |
| void | setVisible(bool visible) |
Benachrichtigungssignal:
| void | visibleChanged(bool visible) |
Dokumentation der Mitgliedsfunktionen
[explicit] QCustom3DItem::QCustom3DItem(QObject *parent = nullptr)
Erstellt ein benutzerdefiniertes 3D-Element mit dem angegebenen „ parent “.
[explicit] QCustom3DItem::QCustom3DItem(const QString &meshFile, QVector3D position, QVector3D scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)
Erstellt ein benutzerdefiniertes 3D-Objekt mit den angegebenen Werten für „ meshFile “, „ position “, „ scaling “, „ rotation “, „ texture “ sowie optional „ parent “.
[override virtual noexcept] QCustom3DItem::~QCustom3DItem()
Löscht das benutzerdefinierte 3D-Element.
[invokable] void QCustom3DItem::setRotationAxisAndAngle(QVector3D axis, float angle)
Eine Hilfsfunktion zum Erstellen des Rotationsquaternions aus axis und angle.
Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.
Siehe auch rotation.
void QCustom3DItem::setTextureImage(const QImage &textureImage)
Legt den Wert von „ textureImage “ als „ QImage “ für das Element fest. Standardmäßig ist die Textur einheitlich grau.
Hinweis: Um Speicherplatz zu sparen, wird die angegebene „ QImage “ nach dem Erstellen einer Textur gelöscht.
© 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.