En esta página

Bars3DNode QML Type

Nodo de gráfico de barras 3D. Más...

Import Statement: import QtGraphs
Inherits:

GraphsNode

Propiedades

Señales

Métodos

Descripción detallada

Este tipo permite a los desarrolladores renderizar un nodo de gráfico de barras en 3D con Qt Quick.

Deberá importar el módulo Qt Graphs para utilizar este tipo:

import QtGraphs

Después podrá utilizar Bars3DNode en sus archivos qml:

import QtQuick
import QtGraphs

View3D {
    width: 640
    height: 480

    Bars3DNode {
        width: parent.width
        height: parent.height

        Bar3DSeries {
            itemLabelFormat: "@colLabel, @rowLabel: @valueLabel"

            ItemModelBarDataProxy {
                itemModel: dataModel
                // Mapping model roles to bar series rows, columns, and values.
                rowRole: "year"
                columnRole: "city"
                valueRole: "expenses"
            }
        }
    }

    ListModel {
        id: dataModel
        ListElement{ year: "2022"; city: "Oulu";     expenses: "4200"; }
        ListElement{ year: "2022"; city: "Rauma";    expenses: "2100"; }
        ListElement{ year: "2022"; city: "Helsinki"; expenses: "7040"; }
        ListElement{ year: "2022"; city: "Tampere";  expenses: "4330"; }
        ListElement{ year: "2023"; city: "Oulu";     expenses: "3960"; }
        ListElement{ year: "2023"; city: "Rauma";    expenses: "1990"; }
        ListElement{ year: "2023"; city: "Helsinki"; expenses: "7230"; }
        ListElement{ year: "2023"; city: "Tampere";  expenses: "4650"; }
    }
}

Vea también Bar3DSeries, ItemModelBarDataProxy, Scatter3DNode, Surface3DNode, y Qt Graphs Clases C++ para 3D.

Documentación de Propiedades

aspectRatio : real

La relación de la escala del gráfico entre el eje más largo en el plano horizontal y el eje y. Por defecto es 2.0.

Nota: No tiene efecto en Bars3D.

Véase también horizontalAspectRatio.

barSeriesMargin : size

Margen entre las columnas de la serie en las dimensiones X y Z. Preestablecido por defecto en (0.0, 0.0). Los valores sensibles están en el rango [0,1).

barSpacing : size

Espacio entre barras en las dimensiones X y Z.

Preestablecido en (1.0, 1.0) por defecto. El espaciado se ve afectado por la propiedad barSpacingRelative.

barSpacingRelative : bool

Si el espaciado es absoluto o relativo al grosor de las barras.

Si true, el valor de 0.0 significa que las barras se colocan de lado a lado, 1.0 significa que se deja entre las barras un espacio tan ancho como el grosor de una barra, y así sucesivamente. Preestablecido en true.

barThickness : real

La relación de grosor de las barras entre las dimensiones X y Z. El valor 1.0 significa que las barras son tan anchas como profundas, mientras que 0.5 hace que sean el doble de profundas que anchas.

columnAxis : Category3DAxis

El eje de columna activo.

Si no se indica un eje, se crea un eje temporal por defecto sin etiquetas. Este eje temporal se destruye si se establece explícitamente otro eje con la misma orientación.

customItemList : list<Custom3DItem>

La lista de elementos Custom3DItem añadidos al gráfico. El gráfico toma posesión de los elementos añadidos.

floorLevel : real

El nivel del suelo para el gráfico de barras en coordenadas de datos del eje Y.

El nivel real del suelo estará restringido por los valores mínimo y máximo del eje Y. Por defecto es cero.

gridLineType : Graphs3D.GridLineType

Define si el tipo de líneas de la cuadrícula es Graphs3D.GridLineType.Shader o Graphs3D.GridLineType.Geometry.

Este valor afecta a todas las líneas de la cuadrícula.

Véase también Graphs3D.GridLineType.

horizontalAspectRatio : real

La relación de la escala del gráfico entre el eje x y el eje z. El valor de 0.0 indica un escalado automático según los rangos de los ejes. El valor por defecto es 0.0.

Nota: No tiene efecto en Bars3DNode, que maneja la escala en el plano horizontal a través de las propiedades barThickness y barSpacing. Los gráficos polares también ignoran esta propiedad.

Ver también aspectRatio, polar, Bars3DNode::barThickness, y Bars3DNode::barSpacing.

labelMargin : real

Esta propiedad especifica el margen para la colocación de las etiquetas de los ejes.

Los valores negativos colocan las etiquetas dentro del área de trazado, mientras que los valores positivos las colocan fuera del área de trazado. La rotación automática de las etiquetas se desactiva cuando el valor es negativo. El valor por defecto es 0.1

Véase también QAbstract3DAxis::labelAutoAngle.

locale : locale

Establece la configuración regional utilizada para dar formato a varias etiquetas numéricas. Por defecto es "C".

Véase también Value3DAxis::labelFormat.

margin : real

Valor absoluto utilizado para el espacio que queda entre el borde del área del gráfico trazable y el borde del fondo del gráfico.

Si el valor del margen es negativo, los márgenes se determinan automáticamente y pueden variar en función del tamaño de los elementos de la serie y del tipo de gráfico. El valor se interpreta como una fracción del margen del eje y si las relaciones de aspecto del gráfico no se han modificado respecto a los valores por defecto. Por defecto es -1.0.

Nota: si se establece un margen más pequeño para un gráfico de dispersión que el margen determinado automáticamente, los elementos de dispersión de los bordes del gráfico pueden solaparse con el fondo del gráfico.

Nota: En los gráficos de dispersión y superficie, si el margen es pequeño en comparación con el tamaño de la etiqueta del eje, las posiciones de las etiquetas de borde de los ejes se ajustan para evitar la superposición con las etiquetas de borde de los ejes vecinos.

multiSeriesUniform : bool

Define si las barras deben escalarse con proporciones establecidas para una sola barra de serie aunque se muestren varias series. Si se establece en true, bar spacing se aplicará correctamente sólo al eje X. Preestablecido a false por defecto.

optimizationHint : Graphs3D.OptimizationHint

Especifica si se utiliza el modo predeterminado o heredado para la optimización del renderizado.

El modo predeterminado utiliza el renderizado por instancias y proporciona el conjunto completo de funciones con el mejor nivel de rendimiento en la mayoría de los sistemas. El modo estático optimiza la representación de gráficos y es ideal para grandes conjuntos de datos que no cambian. Es más lento con cambios de datos dinámicos y rotaciones de elementos. La selección no está optimizada, por lo que no es aconsejable utilizar el modo estático con conjuntos de datos masivos. El modo heredado representa todos los elementos del gráfico individualmente, sin instanciación. Sólo debe utilizarse si el modo por defecto no funciona, es decir, si el sistema de destino no soporta el instanciado. Por defecto es Default.

Nota: En algunos entornos, los gráficos grandes que utilizan la optimización estática pueden no renderizarse, porque todos los elementos se renderizan utilizando una única llamada de dibujo, y los diferentes controladores gráficos soportan diferentes números máximos de vértices por llamada. Esto ocurre principalmente en plataformas de 32 bits y OpenGL ES2. Para solucionar este problema, elige una malla de elementos con un número bajo de vértices o utiliza la malla de puntos.

Véase también Abstract3DSeries::mesh y Graphs3D.OptimizationHint.

polar : bool

Si true, los ejes horizontales se transforman en ejes polares. El eje x se convierte en el eje angular y el eje z en el eje radial. El modo polar no está disponible para los gráficos de barras.

Por defecto es false.

Véase también radialLabelOffset.

primarySeries : Bar3DSeries

La serie primaria del gráfico. Se utiliza para determinar las etiquetas de los ejes de fila y columna cuando las etiquetas no se establecen explícitamente en los ejes.

Si la serie especificada aún no se ha añadido al gráfico, al establecerla como serie primaria también se añadirá implícitamente al gráfico.

Si la serie primaria se elimina del gráfico, esta propiedad se restablece a su valor por defecto.

Si la serie es nula, esta propiedad se restablece por defecto. Por defecto es la primera serie añadida o cero si no se añade ninguna serie al gráfico.

queriedGraphPosition : vector3d [read-only]

Esta propiedad de sólo lectura contiene los últimos valores de posición del gráfico a lo largo de cada eje consultado mediante Scene3D::graphPositionQuery. Los valores están normalizados en el rango [-1, 1]. Si la posición consultada estaba fuera de los límites del gráfico, los valores no reflejarán la posición real, sino que serán una posición indefinida fuera del rango [-1, 1]. El valor será indefinido hasta que se realice una consulta.

No existe una única coordenada 3D correcta que coincida con una posición concreta de la pantalla, 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, por lo que el valor y siempre es cero para los gráficos de barras y las consultas válidas sólo pueden realizarse en posiciones de pantalla que contengan el suelo del gráfico.

Véase también Scene3D::graphPositionQuery.

radialLabelOffset : real

Esta propiedad especifica el desplazamiento horizontal normalizado para las etiquetas de los ejes polares radiales. El valor 0.0 indica que las etiquetas deben dibujarse junto a la línea de rejilla del eje angular 0. El valor 1.0 indica que las etiquetas se dibujan en su lugar habitual en el borde del fondo del gráfico. Esta propiedad se ignora si el valor de la propiedad polar es false. Por defecto es 1.0.

Véase también polar.

rowAxis : Category3DAxis

El eje activo de la fila.

Si no se indica un eje, se crea un eje temporal por defecto sin etiquetas. Este eje temporal se destruye si se establece explícitamente otro eje con la misma orientación.

selectedElement : Graphs3D.ElementType [read-only]

El elemento seleccionado en el gráfico.

Esta propiedad puede utilizarse para consultar el tipo de elemento seleccionado. El tipo es válido hasta que se realiza una nueva selección en el gráfico y se emite la señal selectedElementChanged.

La señal se puede utilizar, por ejemplo, para implementar un manejo de entradas personalizado, como se demuestra en el ejemplo Manejo de ejes.

Véase también selectedLabelIndex(), selectedAxis(), selectedCustomItemIndex(), selectedCustomItem(), Bars3DNode::selectedSeries, Scatter3DNode::selectedSeries, Scene3D::selectionQueryPosition, y Graphs3D.ElementType.

selectedSeries : Bar3DSeries [read-only]

La serie seleccionada o null. Si selectionMode tiene activado el indicador SelectionMultiSeries, esta propiedad contiene la serie a la que pertenece la barra seleccionada.

selectionMode : Graphs3D.SelectionMode

El modo de selección activo en el gráfico. Uno de los valores del enum graphs3d.selectionflag.

seriesList : list<Bar3DSeries> [default]

Las series del gráfico. Por defecto, esta propiedad contiene una lista vacía. Para establecer las series, utilice la función addSeries() o defínalas como hijas del gráfico.

theme : GraphsTheme

El tema activo del gráfico.

Véase también GraphsTheme.

valueAxis : ValueAxis3D

El eje de valor activo.

Si no se indica un eje, 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.

Documentación de señales

barSeriesMarginChanged(size margin)

Esta señal se emite cuando barSeriesMargin cambia a margin.

Nota: El controlador correspondiente es onBarSeriesMarginChanged.

barSpacingChanged(size spacing)

Esta señal se emite cuando barSpacing cambia a spacing.

Nota: El controlador correspondiente es onBarSpacingChanged.

barSpacingRelativeChanged(bool relative)

Esta señal se emite cuando barSpacingRelative cambia a relative.

Nota: El controlador correspondiente es onBarSpacingRelativeChanged.

barThicknessChanged(real thicknessRatio)

Esta señal se emite cuando barThickness cambia a thicknessRatio.

Nota: El controlador correspondiente es onBarThicknessChanged.

columnAxisChanged(Category3DAxis axis)

Esta señal se emite cuando columnAxis cambia a axis.

Nota: El controlador correspondiente es onColumnAxisChanged.

floorLevelChanged(real level)

Esta señal se emite cuando floorLevel cambia a level.

Nota: El controlador correspondiente es onFloorLevelChanged.

multiSeriesUniformChanged(bool uniform)

Esta señal se emite cuando multiSeriesUniform cambia a uniform.

Nota: El controlador correspondiente es onMultiSeriesUniformChanged.

primarySeriesChanged(Bar3DSeries series)

Esta señal se emite cuando primarySeries cambia a series.

Nota: El controlador correspondiente es onPrimarySeriesChanged.

rowAxisChanged(Category3DAxis axis)

Esta señal se emite cuando rowAxis cambia a axis.

Nota: El controlador correspondiente es onRowAxisChanged.

selectedSeriesChanged(Bar3DSeries series)

Esta señal se emite cuando selectedSeries cambia a series.

Nota: El controlador correspondiente es onSelectedSeriesChanged.

valueAxisChanged(ValueAxis3D axis)

Esta señal se emite cuando valueAxis cambia a axis.

Nota: El manejador correspondiente es onValueAxisChanged.

Documentación del método

qsizetype addCustomItem(Custom3DItem item)

Añade un Custom3DItem item al gráfico. Graph toma posesión del elemento añadido.

Devuelve el índice del elemento añadido si la adición se ha realizado correctamente, -1 si se intenta añadir un elemento nulo, y el índice del elemento si se intenta añadir un elemento ya añadido.

Véase también removeCustomItems(), removeCustomItem(), y removeCustomItemAt().

void addSeries(Bar3DSeries series)

Añade series al gráfico. Un gráfico puede contener múltiples series, pero sólo un conjunto de ejes, por lo que las filas y columnas de todas las series deben coincidir para que los datos visualizados tengan sentido. Si el gráfico tiene múltiples series visibles, sólo la primera que se añada generará las etiquetas de fila o columna en los ejes en los casos en que las etiquetas no se hayan establecido explícitamente en los ejes. Si la serie recién añadida ha especificado una barra seleccionada, 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 GraphsNode::hasSeries().

void clearSelection()

Borra la selección de todas las series adjuntas.

void doPicking(QPoint point)

Realiza el picking utilizando las coordenadas de la vista desde point sobre los elementos del gráfico, seleccionando el primer elemento golpeado. El manejo de entrada por defecto realiza esto al recibir el evento onTapped.

Véase también selectedElement.

void doRayPicking(QVector3D origin, QVector3D direction)

Realiza el picking a partir de origin y en direction sobre los elementos del gráfico, seleccionando el primer elemento alcanzado.

Véase también selectedElement.

bool hasSeries(Abstract3DSeries series)

Devuelve si el series ya ha sido añadido al gráfico.

void insertSeries(int index, Bar3DSeries series)

Inserta el series en la posición index de la lista de series. Si la series ya ha sido añadida a la lista, se mueve a la nueva index.

Nota: Cuando se mueve una serie a un nuevo index que está después de su antiguo índice, la nueva posición en la lista se calcula como si la serie estuviera todavía en su antiguo índice, por lo que el índice final es en realidad el index decrementado en uno.

Véase también GraphsNode::hasSeries().

void releaseCustomItem(Custom3DItem item)

Recupera la propiedad de item y elimina item del gráfico.

Nota: Si el mismo ítem es añadido de nuevo al gráfico, el archivo de textura necesita ser reajustado.

Véase también Custom3DItem::textureFile.

void removeCustomItem(Custom3DItem item)

Elimina la página personalizada item. Elimina los recursos asignados.

void removeCustomItemAt(vector3d position)

Elimina todos los elementos personalizados en position. Elimina los recursos asignados a ellos.

void removeCustomItems()

Elimina todos los elementos personalizados. Elimina los recursos asignados a ellos.

void removeSeries(Bar3DSeries series)

Elimina el series del gráfico.

Véase también GraphsNode::hasSeries().

Abstract3DAxis selectedAxis()

Puede utilizarse para obtener el eje seleccionado tras recibir la señal selectedElementChanged con cualquier tipo de etiqueta. La selección es válida hasta la siguiente señal selectedElementChanged.

Devuelve el eje seleccionado, o null.

Véase también selectedElement.

Custom3DItem selectedCustomItem()

Puede utilizarse para obtener el elemento personalizado seleccionado tras recibir la señal selectedElementChanged con el tipo ElementType.CustomItem. La propiedad del elemento permanece en el gráfico. La selección es válida hasta la siguiente señal selectedElementChanged.

Devuelve el elemento personalizado seleccionado, o null.

Véase también selectedElement.

qsizetype selectedCustomItemIndex()

Puede utilizarse para consultar el índice del elemento personalizado seleccionado tras recibir la señal selectedElementChanged con el tipo ElementType.CustomItem. La selección es válida hasta la siguiente señal selectedElementChanged.

Devuelve el índice del elemento personalizado seleccionado, o -1.

Véase también selectedElement.

int selectedLabelIndex()

Puede utilizarse para consultar el índice de la etiqueta seleccionada tras recibir la señal selectedElementChanged con cualquier tipo de etiqueta. La selección es válida hasta la siguiente señal selectedElementChanged.

Devuelve el índice de la etiqueta seleccionada, o -1.

Véase también selectedElement.

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