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 DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
Seit: QtDataVisualization 1.1
In QML: Custom3DItem
Erbt von: QObject
Wird vererbt von:

QCustom3DLabel und QCustom3DVolume

Status: Veraltet

Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

Eigenschaften

Öffentliche Funktionen

QCustom3DItem(QObject *parent = nullptr)
QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)
virtual ~QCustom3DItem()
bool isPositionAbsolute() 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(const QVector3D &position)
void setPositionAbsolute(bool positionAbsolute)
void setRotation(const QQuaternion &rotation)
void setRotationAxisAndAngle(const QVector3D &axis, float angle)
void setScaling(const 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(const QVector3D &position)
void rotationChanged(const QQuaternion &rotation)
void scalingAbsoluteChanged(bool scalingAbsolute)
void scalingChanged(const 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 „ QAbstract3DGraph::addCustomItem()“.

Eigenschaftsdokumentation

meshFile : QString

Diese Eigenschaft enthält den Dateinamen des Objekt-Meshes.

Das Objekt in der Datei muss im Wavefront-OBJ-Format vorliegen und Scheitelpunkte, Normalen sowie UV-Koordinaten enthalten. Außerdem muss es aus Dreiecken bestehen. Fehlen in der Datei entweder Normalen oder UV-Koordinaten, schlägt das Laden mit einer Fehlermeldung in der Konsolenausgabe fehl und das Objekt wird nicht gerendert.

Zugriffsfunktionen:

QString meshFile() const
void setMeshFile(const QString &meshFile)

Notifier-Signal:

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(const QVector3D &position)

Notifier-Signal:

void positionChanged(const 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.

Standardmäßig ist der Wert „ false “ eingestellt. Elemente mit absoluten Koordinaten werden immer dargestellt, während Elemente mit Datenkoordinaten nur dann dargestellt werden, wenn sie sich innerhalb der Achsenbereiche befinden.

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)

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 Elementgitter ist normalisiert und die Seitenverhältnisse des Diagramms wurden nicht gegenüber den Standardwerten geändert.

Zugriffsfunktionen:

QVector3D scaling() const
void setScaling(const QVector3D &scaling)

Benachrichtigungssignal:

void scalingChanged(const QVector3D &scaling)

Siehe auch „ scalingAbsolute “.

[since QtDataVisualization 1.2] 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 QCustom3DLabel-Elemente oder für benutzerdefinierte Elemente, die in polar -Diagrammen verwendet werden, wirdnur die absolute Skalierung unterstützt.

Hinweis: Das Mesh des benutzerdefinierten Elements muss auf den Bereich [-1 ,1] normiert sein, da die Datenskalierung andernfalls nicht korrekt ist.

Diese Aufzählung wurde in QtDataVisualization 1.2 eingeführt.

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 Element Schatten geworfen werden.

Der Standardwert ist „ true “. Wenn „ false “ gilt, wirft das Element unabhängig von „ QAbstract3DGraph::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 die 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, const QVector3D &position, const 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 “.

[virtual noexcept] QCustom3DItem::~QCustom3DItem()

Löscht das benutzerdefinierte 3D-Element.

[invokable] void QCustom3DItem::setRotationAxisAndAngle(const 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. Die Textur ist standardmäßig 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.