En esta página

QCustom3DItem Class

La clase QCustom3DItem añade un elemento personalizado a un gráfico. Más...

Cabecera: #include <QCustom3DItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
En QML: Custom3DItem
Hereda de: QObject
Heredado por:

QCustom3DLabel y QCustom3DVolume

Propiedades

Funciones públicas

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

Señales

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)

Descripción detallada

Un elemento personalizado tiene una malla personalizada, posición, escalado, rotación y una textura opcional.

Véase también Q3DGraphsWidgetItem::addCustomItem().

Documentación de propiedades

meshFile : QString

Esta propiedad contiene el nombre del archivo de malla del elemento.

El elemento en el archivo debe estar en formato malla. Los otros tipos pueden ser convertidos por la herramienta de importación de activos Balsam. Se recomienda que los archivos de malla incluyan vértices, normales y UV.

Funciones de acceso:

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

Señal de notificación:

void meshFileChanged(const QString &meshFile)

position : QVector3D

Esta propiedad contiene la posición del elemento como QVector3D.

Por defecto es QVector3D(0.0, 0.0, 0.0).

La posición del elemento se especifica en coordenadas de datos o en coordenadas absolutas, dependiendo de la propiedad positionAbsolute. Cuando se utilizan coordenadas absolutas, los valores entre -1.0...1.0 están dentro de los rangos de los ejes.

Nota: Los elementos posicionados fuera de cualquier rango de ejes no se renderizan si positionAbsolute es false, a menos que el elemento sea un QCustom3DVolume que sería parcialmente visible y scalingAbsolute sea también false. En ese caso, se representará la parte visible del volumen.

Funciones de acceso:

QVector3D position() const
void setPosition(QVector3D position)

Señal del notificador:

void positionChanged(QVector3D position)

Véase también positionAbsolute.

positionAbsolute : bool

Esta propiedad indica si la posición del elemento debe ser manejada en coordenadas de datos o en coordenadas absolutas.

Por defecto es false. Los ítems con coordenadas absolutas siempre se renderizarán, mientras que los ítems con coordenadas de datos sólo se renderizarán si están dentro de los rangos de los ejes.

Funciones de acceso:

bool isPositionAbsolute() const
void setPositionAbsolute(bool positionAbsolute)

Señal del notificador:

void positionAbsoluteChanged(bool positionAbsolute)

Véase también position.

rotation : QQuaternion

Esta propiedad contiene la rotación del elemento como QQuaternion.

Por defecto es QQuaternion(0.0, 0.0, 0.0, 0.0).

Funciones de acceso:

QQuaternion rotation()
void setRotation(const QQuaternion &rotation)

Señal del notificador:

void rotationChanged(const QQuaternion &rotation)

[since 6.11] rotationAbsolute : bool

Esta propiedad define si la rotación del elemento debe tratarse en coordenadas del eje de datos o en coordenadas absolutas.

Define si la rotación del ítem debe ser manejada en valores de datos o en valores absolutos. Por defecto es true. Los elementos con rotación absoluta rotarán con las coordenadas por defecto, independientemente del eje. Los elementos con rotación de datos rotarán según las coordenadas del eje.

Esta propiedad se introdujo en Qt 6.11.

Funciones de acceso:

bool isRotationAbsolute() const
void setRotationAbsolute(bool rotationAbsolute)

Señal de notificador:

void rotationAbsoluteChanged(bool newRotationAbsolute)

Véase también rotation.

scaling : QVector3D

Esta propiedad contiene la escala del elemento como QVector3D.

Por defecto es QVector3D(0.1, 0.1, 0.1).

El escalado del elemento se realiza en valores de datos o en valores absolutos, dependiendo de la propiedad scalingAbsolute. El vector por defecto interpretado como valores absolutos establece el elemento al 10% de la altura del gráfico, siempre que la malla del elemento esté normalizada y las relaciones de aspecto del gráfico no se hayan modificado respecto a los valores por defecto.

Nota: En Qt 6.8 se asumía incorrectamente que los modelos se escalaban a un tamaño de 1 (-0.5...0.5) por defecto, cuando en realidad se escalan a un tamaño de 2 (-1...1). Debido a esto, todos los elementos personalizados a partir de Qt 6.9 tienen el doble de tamaño en comparación con Qt 6.8

Funciones de acceso:

QVector3D scaling() const
void setScaling(QVector3D scaling)

Señal de notificador:

void scalingChanged(QVector3D scaling)

Véase también scalingAbsolute.

scalingAbsolute : bool

Esta propiedad indica si la escala de los elementos debe manejarse en valores de datos o en valores absolutos.

Por defecto es true.

Los elementos con escalado absoluto se mostrarán con el mismo tamaño, independientemente de los rangos de los ejes. Los elementos con escalado de datos cambiarán su tamaño aparente según los rangos de los ejes. Si positionAbsolute es true, esta propiedad se ignora y la escala se interpreta como un valor absoluto. Si el elemento tiene rotación, el escalado de datos se calcula sobre el elemento no rotado. Del mismo modo, para los elementos QCustom3DVolume, el recorte de rango se calcula sobre el elemento no rotado.

Nota: Sólo se admite el escalado absoluto para los elementos QCustom3DLabel o para los elementos personalizados utilizados en los gráficos polar.

Nota: La malla del elemento personalizado debe estar normalizada al rango [-1 ,1], o el escalado de datos no será preciso.

Funciones de acceso:

bool isScalingAbsolute() const
void setScalingAbsolute(bool scalingAbsolute)

Señal del notificador:

void scalingAbsoluteChanged(bool scalingAbsolute)

Véase también scaling y positionAbsolute.

shadowCasting : bool

Esta propiedad indica si está habilitada la proyección de sombras para el ítem.

Por defecto es true. Si false, el ítem no proyecta sombras independientemente de Q3DGraphsWidgetItem::ShadowQuality.

Funciones de acceso:

bool isShadowCasting() const
void setShadowCasting(bool enabled)

Notifier signal:

void shadowCastingChanged(bool shadowCasting)

textureFile : QString

Esta propiedad contiene el nombre del archivo de textura del elemento.

Si tanto esta propiedad como la imagen de la textura están desactivadas, se utilizará una textura gris sólida.

Nota: Para ahorrar memoria, la dirección QImage cargada desde el archivo se borra después de crear una textura.

Funciones de acceso:

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

Señal del notificador:

void textureFileChanged(const QString &textureFile)

visible : bool

Esta propiedad contiene la visibilidad del elemento.

Por defecto es true.

Funciones de acceso:

bool isVisible() const
void setVisible(bool visible)

Señal del notificador:

void visibleChanged(bool visible)

Documentación de la función miembro

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

Construye un elemento 3D personalizado con la dirección parent especificada.

[explicit] QCustom3DItem::QCustom3DItem(const QString &meshFile, QVector3D position, QVector3D scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)

Construye un elemento 3D personalizado con la imagen especificada meshFile, position, scaling, rotation, texture y parent opcional.

[override virtual noexcept] QCustom3DItem::~QCustom3DItem()

Elimina el elemento 3D personalizado.

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

Una función de conveniencia para construir el cuaternión de rotación a partir de axis y angle.

Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.

Véase también rotation.

void QCustom3DItem::setTextureImage(const QImage &textureImage)

Establece el valor de textureImage como QImage para el elemento. La textura por defecto es gris sólido.

Nota: Para conservar memoria, el QImage dado se borra después de crear una textura.

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