En esta página

Q3DScene Class

La clase Q3DScene proporciona una descripción de la escena 3D que se está visualizando. Más...

Cabecera: #include <Q3DScene>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
En QML: Scene3D
Hereda: QObject

Propiedades

Funciones públicas

Q3DScene(QObject *parent = nullptr)
virtual ~Q3DScene() override
qreal devicePixelRatio() const
QPoint graphPositionQuery() const
QPoint invalidSelectionPoint() const
bool isPointInPrimarySubView(QPoint point)
bool isPointInSecondarySubView(QPoint point)
bool isSecondarySubviewOnTop() const
bool isSlicingActive() const
QRect primarySubViewport() const
QRect secondarySubViewport() const
QPoint selectionQueryPosition() const
void setDevicePixelRatio(qreal pixelRatio)
void setGraphPositionQuery(QPoint point)
void setPrimarySubViewport(QRect primarySubViewport)
void setSecondarySubViewport(QRect secondarySubViewport)
void setSecondarySubviewOnTop(bool isSecondaryOnTop)
void setSelectionQueryPosition(QPoint point)
void setSlicingActive(bool isSlicing)
QRect viewport() const

Señales

void devicePixelRatioChanged(qreal pixelRatio)
void graphPositionQueryChanged(QPoint position)
void primarySubViewportChanged(QRect subViewport)
void secondarySubViewportChanged(QRect subViewport)
void secondarySubviewOnTopChanged(bool isSecondaryOnTop)
void selectionQueryPositionChanged(QPoint position)
void slicingActiveChanged(bool isSlicingActive)
void viewportChanged(QRect viewport)

Descripción detallada

La escena 3D contiene una única cámara activa y una única fuente de luz activa. Se supone que los datos visualizados se encuentran en una ubicación fija.

La escena 3D también realiza un seguimiento de la ventana gráfica en la que se realiza el renderizado del gráfico, la ventana secundaria primaria dentro de la ventana gráfica donde se encuentra la vista principal del gráfico 3D y la ventana secundaria donde se encuentra la vista en 2D de los datos. Los subviewports son por defecto redimensionados por el Q3DScene. Para anular el comportamiento del redimensionamiento necesitas escuchar ambas señales viewportChanged() y slicingActiveChanged() y recalcular los subviewports en consecuencia.

Además, la escena tiene un indicador para saber si la vista de corte 2D secundaria está activa o no.

Nota: No todos los gráficos soportan la vista de corte 2D secundaria.

Documentación de propiedades

devicePixelRatio : qreal

Esta propiedad contiene la relación de píxeles del dispositivo que se utiliza al mapear las coordenadas de entrada a coordenadas de píxeles.

Funciones de acceso:

qreal devicePixelRatio() const
void setDevicePixelRatio(qreal pixelRatio)

Señal del notificador:

void devicePixelRatioChanged(qreal pixelRatio)

graphPositionQuery : QPoint

Esta propiedad contiene las coordenadas de la entrada del usuario que deben ser procesadas por la escena como una consulta de posición del gráfico.

Si esta propiedad tiene un valor distinto de invalidSelectionPoint(), el gráfico intenta hacer coincidir una posición del gráfico con las coordenadas especificadas dentro de la ventana gráfica primaria. Después del pase de renderizado, esta propiedad vuelve a su estado por defecto de invalidSelectionPoint(). La posición del gráfico consultada puede leerse en la propiedad Q3DGraphsWidgetItem::queriedGraphPosition tras el siguiente pase de renderizado.

No existe una única coordenada 3D correcta que coincida con una posición de pantalla concreta, por lo que, para ser coherentes, las consultas se realizan siempre contra los lados interiores de una caja invisible que rodea el gráfico.

Nota: Los gráficos de barras sólo permiten consultar la posición del gráfico a nivel del suelo del gráfico.

Funciones de acceso:

QPoint graphPositionQuery() const
void setGraphPositionQuery(QPoint point)

Señal del notificador:

void graphPositionQueryChanged(QPoint position)

Véase también Q3DGraphsWidgetItem::queriedGraphPosition.

[read-only] invalidSelectionPoint : const QPoint

Esta propiedad contiene un punto que representa una posición de selección no válida.

Funciones de acceso:

QPoint invalidSelectionPoint() const

primarySubViewport : QRect

Esta propiedad contiene el rectángulo de la subvista actual dentro de la vista a la que se dirige la vista primaria de los gráficos.

Si la subvista primaria no se ha establecido explícitamente, será una quinta parte de viewport().

Nota: Establecer primarySubViewport más grande o fuera de la ventana redimensiona la ventana en consecuencia.

Funciones de acceso:

QRect primarySubViewport() const
void setPrimarySubViewport(QRect primarySubViewport)

Señal de aviso:

void primarySubViewportChanged(QRect subViewport)

secondarySubViewport : QRect

Esta propiedad contiene el rectángulo de la ventana secundaria dentro de la ventana.

La ventana secundaria se utiliza para dibujar la vista 2D en algunos gráficos. Si no se ha establecido explícitamente, será igual al tamaño de la ventana gráfica.

Nota: Si la ventana secundaria es mayor o está fuera de la ventana gráfica, ésta se redimensionará en consecuencia.

Funciones de acceso:

QRect secondarySubViewport() const
void setSecondarySubViewport(QRect secondarySubViewport)

Señal de notificación:

void secondarySubViewportChanged(QRect subViewport)

secondarySubviewOnTop : bool

Esta propiedad determina si se dibuja encima la vista de corte 2D o la vista 3D.

Funciones de acceso:

bool isSecondarySubviewOnTop() const
void setSecondarySubviewOnTop(bool isSecondaryOnTop)

Señal del notificador:

void secondarySubviewOnTopChanged(bool isSecondaryOnTop)

selectionQueryPosition : QPoint

Esta propiedad contiene las coordenadas de la entrada del usuario que debe ser procesada por la escena como una selección.

Si esta propiedad tiene un valor distinto de invalidSelectionPoint(), el gráfico intenta seleccionar un elemento de datos, una etiqueta de eje o un elemento personalizado en las coordenadas especificadas dentro de la ventana gráfica primaria. Tras el pase de renderizado, la propiedad vuelve a su estado por defecto de invalidSelectionPoint().

Funciones de acceso:

QPoint selectionQueryPosition() const
void setSelectionQueryPosition(QPoint point)

Señal del notificador:

void selectionQueryPositionChanged(QPoint position)

Véase también Q3DGraphsWidgetItem::selectedElement.

slicingActive : bool

Esta propiedad indica si la vista de corte 2D está actualmente activa.

Si true, Q3DGraphsWidgetItem::selectionMode debe tener QtGraphs3D::SelectionFlag::Row o QtGraphs3D::SelectionFlag::Column en una selección válida.

Nota: No todos los gráficos soportan la vista 2D.

Funciones de acceso:

bool isSlicingActive() const
void setSlicingActive(bool isSlicing)

Señal del notificador:

void slicingActiveChanged(bool isSlicingActive)

[read-only] viewport : QRect

Esta propiedad contiene una propiedad de sólo lectura que contiene el rectángulo de la vista actual donde se dirige todo el renderizado 3D.

Funciones de acceso:

QRect viewport() const

Señal notificadora:

void viewportChanged(QRect viewport)

Documentación de la función miembro

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

Construye una escena básica con una luz y una cámara. Se puede dar un parámetro opcional parent que se pasa al constructor QObject.

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

Destruye la escena 3D y todos los objetos que contiene.

QPoint Q3DScene::invalidSelectionPoint() const

Devuelve un QPoint que significa una posición de selección inválida.

Nota: Función Getter para la propiedad invalidSelectionPoint.

bool Q3DScene::isPointInPrimarySubView(QPoint point)

Devuelve si el point dado se encuentra dentro de la subvista primaria o no. Devuelve true si el punto está dentro de la subvista primaria.

Nota: Si las subvistas están superpuestas y el punto point está dentro de ambas, el resultado es true sólo si la subvista primaria está encima.

bool Q3DScene::isPointInSecondarySubView(QPoint point)

Devuelve si el point dado se encuentra dentro de la subvista secundaria o no. Devuelve true si el punto está dentro de la subvista secundaria.

Nota: Si las subvistas están superpuestas y el punto point está dentro de ambas, el resultado es true sólo si la subvista secundaria está encima.

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