Auf dieser Seite

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:

QCustom3DLabel und QCustom3DVolume

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.