QCustom3DItem Class

Die Klasse QCustom3DItem fügt ein benutzerdefiniertes Element zu einem Diagramm hinzu. Mehr...

Kopfzeile: #include <QCustom3DItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
Since: QtDataVisualization 1.1
In QML: Custom3DItem
Vererbt: QObject
Geerbt von:

QCustom3DLabel und QCustom3DVolume

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 hat ein benutzerdefiniertes Mesh, Position, Skalierung, Drehung und eine optionale Textur.

Siehe auch QAbstract3DGraph::addCustomItem().

Dokumentation der Eigenschaft

meshFile : QString

Diese Eigenschaft enthält den Dateinamen des Objektmeshs.

Das Element in der Datei muss im Wavefront OBJ-Format vorliegen und Eckpunkte, Normalen und UVs enthalten. Es muss auch Dreiecke enthalten. Wenn in der Datei entweder Normalen oder UVs fehlen, schlägt das Laden mit einer Fehlermeldung in der Konsolenausgabe fehl und das Element wird nicht gerendert.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void meshFileChanged(const QString &meshFile)

position : QVector3D

Diese Eigenschaft enthält die Position des Elements als QVector3D.

Die Standardeinstellung ist QVector3D(0.0, 0.0, 0.0).

Die Elementposition wird entweder in Datenkoordinaten oder in absoluten Koordinaten angegeben, je nach der Eigenschaft positionAbsolute. 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 false ist, es sei denn, das Element ist ein QCustom3DVolume, das teilweise sichtbar wäre, und scalingAbsolute ist auch false. In diesem Fall wird der sichtbare Teil des Volumens gerendert.

Zugriffsfunktionen:

QVector3D position() const
void setPosition(const QVector3D &position)

Benachrichtigungssignal:

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.

Der Standardwert ist false. Elemente mit absoluten Koordinaten werden immer gerendert, während Elemente mit Datenkoordinaten nur gerendert werden, wenn sie sich innerhalb der Achsenbereiche befinden.

Zugriffsfunktionen:

bool isPositionAbsolute() const
void setPositionAbsolute(bool positionAbsolute)

Melder-Signal:

void positionAbsoluteChanged(bool positionAbsolute)

Siehe auch position.

rotation : QQuaternion

Diese Eigenschaft enthält die Artikeldrehung als QQuaternion.

Die Standardeinstellung 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 enthält die Skalierung des Elements als QVector3D.

Die Standardeinstellung ist QVector3D(0.1, 0.1, 0.1).

Die Skalierung der Elemente erfolgt entweder in Datenwerten oder in absoluten Werten, abhängig von der Eigenschaft scalingAbsolute. Der Standardvektor, der als absolute Werte interpretiert wird, setzt das Element auf 10 % der Höhe des Diagramms, vorausgesetzt, das Elementnetz 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 der Elemente in Datenwerten oder in absoluten Werten erfolgen soll.

Die Standardeinstellung ist true.

Elemente mit absoluter Skalierung werden unabhängig von den Achsenbereichen in derselben Größe wiedergegeben. Elemente mit Datenskalierung ändern ihre sichtbare Größe entsprechend den Achsenbereichen. Wenn positionAbsolute gleich true ist, wird diese Eigenschaft ignoriert und die Skalierung wird als absoluter Wert interpretiert. Wenn das Element eine Drehung aufweist, wird die Datenskalierung für das nicht gedrehte Element berechnet. Analog dazu wird bei QCustom3DVolume die Bereichsbeschneidung für das nicht gedrehte Element berechnet.

Hinweis: Für QCustom3DLabel Elemente oder für benutzerdefinierte Elemente, die in polar Diagrammen verwendet werden, wird nur die absolute Skalierung unterstützt.

Hinweis: Das Netz des benutzerdefinierten Elements muss auf den Bereich [-1 ,1] normalisiert werden, sonst ist die Skalierung der Daten nicht genau.

Diese Eigenschaft 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 gibt an, ob der Schattenwurf für den Gegenstand aktiviert ist.

Der Standardwert ist true. Wenn false, wirft der Artikel keine Schatten, unabhängig von QAbstract3DGraph::ShadowQuality.

Zugriffsfunktionen:

bool isShadowCasting() const
void setShadowCasting(bool enabled)

Benachrichtigungssignal:

void shadowCastingChanged(bool shadowCasting)

textureFile : QString

Diese Eigenschaft enthält den Namen der Texturdatei für das Objekt.

Wenn sowohl diese Eigenschaft als auch das Texturbild nicht gesetzt sind, wird eine einfarbig graue Textur verwendet.

Hinweis: Um Speicherplatz zu sparen, wird die aus der Datei geladene QImage gelöscht, nachdem eine Textur erstellt wurde.

Zugriffsfunktionen:

QString textureFile() const
void setTextureFile(const QString &textureFile)

Benachrichtigungssignal:

void textureFileChanged(const QString &textureFile)

visible : bool

Diese Eigenschaft enthält die Sichtbarkeit des Objekts.

Der Standardwert ist true.

Zugriffsfunktionen:

bool isVisible() const
void setVisible(bool visible)

Benachrichtigungssignal:

void visibleChanged(bool visible)

Member Function Dokumentation

[explicit] QCustom3DItem::QCustom3DItem(QObject *parent = nullptr)

Konstruiert 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)

Konstruiert ein benutzerdefiniertes 3D-Element mit dem angegebenen meshFile, position, scaling, rotation, texture Bild und optional parent.

[virtual noexcept] QCustom3DItem::~QCustom3DItem()

Löscht das benutzerdefinierte 3D-Element.

[invokable] void QCustom3DItem::setRotationAxisAndAngle(const QVector3D &axis, float angle)

Eine Komfortfunktion, um die Rotationsquaternion aus axis und angle zu konstruieren.

Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus 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 einfarbig grau.

Hinweis: Um Speicher zu sparen, wird die angegebene QImage nach der Erstellung einer Textur gelöscht.

© 2025 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.