Q3DScatterWidgetItem Class
La clase Q3DScatterWidgetItem proporciona métodos para representar gráficos de dispersión 3D. Más...
| Cabecera: | #include <Q3DScatterWidgetItem> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS GraphsWidgets)target_link_libraries(mytarget PRIVATE Qt6::GraphsWidgets) |
| qmake: | QT += graphswidgets |
| Hereda: | Q3DGraphsWidgetItem |
- Lista de todos los miembros, incluyendo los heredados
- Q3DScatterWidgetItem es parte de Qt Graphs C++ Classes for Widgets.
Propiedades
- axisX : QValue3DAxis*
- axisY : QValue3DAxis*
- axisZ : QValue3DAxis*
- selectedSeries : QScatter3DSeries*
Funciones públicas
| Q3DScatterWidgetItem(QObject *parent = nullptr) | |
| virtual | ~Q3DScatterWidgetItem() override |
| void | addAxis(QValue3DAxis *axis) |
| void | addSeries(QScatter3DSeries *series) |
| QList<QValue3DAxis *> | axes() const |
| QValue3DAxis * | axisX() const |
| QValue3DAxis * | axisY() const |
| QValue3DAxis * | axisZ() const |
| void | releaseAxis(QValue3DAxis *axis) |
| void | removeSeries(QScatter3DSeries *series) |
| QScatter3DSeries * | selectedSeries() const |
| QList<QScatter3DSeries *> | seriesList() const |
| void | setAxisX(QValue3DAxis *axis) |
| void | setAxisY(QValue3DAxis *axis) |
| void | setAxisZ(QValue3DAxis *axis) |
Señales
| void | axisXChanged(QValue3DAxis *axis) |
| void | axisYChanged(QValue3DAxis *axis) |
| void | axisZChanged(QValue3DAxis *axis) |
| void | selectedSeriesChanged(QScatter3DSeries *series) |
Descripción detallada
Esta clase permite a los desarrolladores renderizar gráficos de dispersión en 3D y visualizarlos rotando libremente la escena. La rotación se consigue manteniendo pulsado el botón derecho del ratón y moviendo el ratón, mientras que el zoom se realiza utilizando la rueda del ratón. Si está activada, la selección se realiza con el botón izquierdo del ratón. La escena puede restablecerse a la vista de cámara predeterminada pulsando la rueda del ratón. En dispositivos táctiles, la rotación se consigue pulsando y moviendo, la selección pulsando y manteniendo pulsado, y el zoom pellizcando.
Si no se establecen ejes explícitamente en Q3DScatterWidgetItem, se crean ejes temporales por defecto sin etiquetas. Estos ejes por defecto pueden ser modificados a través de accesores de eje, pero tan pronto como cualquier eje se establece explícitamente para la orientación, el eje por defecto para esa orientación se destruye.
Q3DScatterWidgetItem soporta más de una serie visible al mismo tiempo.
Q3DScatterWidgetItem soporta transparencia. Esta característica permite ajustar la opacidad de los puntos de dispersión, haciéndolos parcialmente transparentes, totalmente transparentes u opacos.
Cómo construir un gráfico Q3DScatterWidgetItem mínimo
En primer lugar, construye Q3DScatterWidgetItem. Dado que en este ejemplo estamos ejecutando el gráfico como la ventana de nivel superior, necesitamos borrar la bandera Qt::FramelessWindowHint, que está establecida por defecto:
QQuickWidget quickWidget; Q3DScatterWidgetItem scatter; scatter.setWidget(&quickWidget); scatter.widget()->setMinimumSize(QSize(256, 256));
Ahora Q3DScatterWidgetItem está listo para recibir datos para ser renderizados. Añada una serie de 3 elementos QVector3D:
Nota: En la nueva relación proxy-serie, los datos se mantienen en serie. Por lo tanto, para que el proxy pueda añadir, borrar o editar los datos, es un prerrequisito crear primero una serie.
QScatter3DSeries series; QScatterDataArray data; data << QScatterDataItem(0.5f, 0.5f, 0.5f) << QScatterDataItem(-0.3f, -0.5f, -0.4f) << QScatterDataItem(0.0f, -0.3f, 0.2f); series.dataProxy()->addItems(data); scatter.addSeries(&series);
Por último, será necesario hacerla visible:
scatter.widget()->show();
El código completo necesario para crear y mostrar este gráfico es:
#include <QtGraphs> #include <QtGraphsWidgets/q3dscatterwidgetitem.h> #include <QtWidgets/qapplication.h> int main(int argc, char **argv) { QApplication app(argc, argv); QQuickWidget quickWidget; Q3DScatterWidgetItem scatter; scatter.setWidget(&quickWidget); scatter.widget()->setMinimumSize(QSize(256, 256)); QScatter3DSeries series; QScatterDataArray data; data << QScatterDataItem(0.5f, 0.5f, 0.5f) << QScatterDataItem(-0.3f, -0.5f, -0.4f) << QScatterDataItem(0.0f, -0.3f, 0.2f); series.dataProxy()->addItems(data); scatter.addSeries(&series); scatter.widget()->show(); return app.exec(); }
Y esto es lo que producen esas pocas líneas de código:

La escena se puede rotar, hacer zoom, y se puede seleccionar un elemento para ver su posición, pero no se incluyen otras interacciones en este ejemplo de código mínimo. Puedes aprender más familiarizándote con los ejemplos proporcionados, como el Gráfico de dispersión simple.
Vea también Q3DBarsWidgetItem, Q3DSurfaceWidgetItem, y Qt Graphs C++ Classes for 3D.
Documentación de Propiedades
axisX : QValue3DAxis*
Esta propiedad mantiene el eje x activo.
Establece axis como eje x activo. Llama implícitamente a addAxis() para transferir la propiedad del eje a este gráfico.
Si axis es nulo, se crea un eje temporal por defecto sin etiquetas y con un rango que se ajusta automáticamente. Este eje temporal se destruye si se establece explícitamente otro eje con la misma orientación.
Funciones de acceso:
| QValue3DAxis * | axisX() const |
| void | setAxisX(QValue3DAxis *axis) |
Señal del notificador:
| void | axisXChanged(QValue3DAxis *axis) |
Véase también addAxis() y releaseAxis().
axisY : QValue3DAxis*
Esta propiedad mantiene el eje y activo.
Establece axis como el eje y activo. Llama implícitamente a addAxis() para transferir la propiedad del eje a este gráfico.
Si axis es nulo, se crea un eje temporal por defecto sin etiquetas y con un rango que se ajusta automáticamente. Este eje temporal se destruye si se establece explícitamente otro eje con la misma orientación.
Funciones de acceso:
| QValue3DAxis * | axisY() const |
| void | setAxisY(QValue3DAxis *axis) |
Señal notificadora:
| void | axisYChanged(QValue3DAxis *axis) |
Véase también addAxis() y releaseAxis().
axisZ : QValue3DAxis*
Esta propiedad mantiene el eje z activo.
Establece axis como el eje z activo. Llama implícitamente a addAxis() para transferir la propiedad del eje a este gráfico.
Si axis es nulo, se crea un eje temporal por defecto sin etiquetas y con un rango que se ajusta automáticamente. Este eje temporal se destruye si se establece explícitamente otro eje con la misma orientación.
Funciones de acceso:
| QValue3DAxis * | axisZ() const |
| void | setAxisZ(QValue3DAxis *axis) |
Señal notificadora:
| void | axisZChanged(QValue3DAxis *axis) |
Véase también addAxis() y releaseAxis().
[read-only] selectedSeries : QScatter3DSeries*
Esta propiedad contiene la serie seleccionada o null.
Funciones de acceso:
| QScatter3DSeries * | selectedSeries() const |
Señal del notificador:
| void | selectedSeriesChanged(QScatter3DSeries *series) |
Documentación de funciones miembro
[explicit] Q3DScatterWidgetItem::Q3DScatterWidgetItem(QObject *parent = nullptr)
Construye un nuevo gráfico de dispersión 3D con la opción parent.
[override virtual noexcept] Q3DScatterWidgetItem::~Q3DScatterWidgetItem()
Destruye el gráfico de dispersión 3D.
void Q3DScatterWidgetItem::addAxis(QValue3DAxis *axis)
Añade axis al gráfico. Los ejes añadidos a través de addAxis aún no se toman para su uso, addAxis se utiliza simplemente para dar la propiedad de la axis al gráfico. El axis no debe ser nulo o añadido a otro gráfico.
Véase también releaseAxis(), setAxisX(), setAxisY(), y setAxisZ().
void Q3DScatterWidgetItem::addSeries(QScatter3DSeries *series)
Añade series al gráfico. Un gráfico puede contener múltiples series, pero sólo tiene un conjunto de ejes. Si la serie recién añadida ha especificado un elemento seleccionado, se resaltará y se borrará cualquier selección existente. Sólo una serie añadida puede tener una selección activa.
Véase también Q3DGraphsWidgetItem::hasSeries().
QList<QValue3DAxis *> Q3DScatterWidgetItem::axes() const
Devuelve la lista de todos los ejes añadidos.
Véase también addAxis().
void Q3DScatterWidgetItem::releaseAxis(QValue3DAxis *axis)
Devuelve la propiedad de axis a quien lo solicitó, si se ha añadido a este gráfico. Si el axis liberado está en uso, se creará un nuevo eje por defecto y se activará.
Si el eje por defecto se libera y se vuelve a añadir más tarde, se comporta como cualquier otro eje.
Véase también addAxis(), setAxisX(), setAxisY() y setAxisZ().
void Q3DScatterWidgetItem::removeSeries(QScatter3DSeries *series)
Elimina la dirección series del gráfico.
Véase también Q3DGraphsWidgetItem::hasSeries().
QList<QScatter3DSeries *> Q3DScatterWidgetItem::seriesList() const
Devuelve la lista de series añadidas a este gráfico.
Véase también Q3DGraphsWidgetItem::hasSeries().
© 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.