En esta página

QPieSlice Class

La clase QPieSlice representa una única porción de una serie de tartas. Más...

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

Tipos Públicos

enum class LabelPosition { Outside, InsideHorizontal, InsideTangential, InsideNormal }

Propiedades

Funciones públicas

QPieSlice(QObject *parent = nullptr)
QPieSlice(const QString &label, qreal value, QObject *parent = nullptr)
virtual ~QPieSlice() override
qreal angleSpan() const
bool append(QPieSlice *slice)
bool append(const QList<QPieSlice *> &slices)
QPieSlice *append(const QString &label, qreal value)
QPieSlice *at(qsizetype index) const
QColor borderColor() const
qreal borderWidth() const
QColor color() const
qreal explodeDistanceFactor() const
QPieSlice *find(const QString &label) const
bool insert(qsizetype index, QPieSlice *slice)
bool isEmpty() const
bool isExploded() const
bool isLabelVisible() const
QString label() const
qreal labelArmLengthFactor() const
QColor labelColor() const
QFont labelFont() const
QPieSlice::LabelPosition labelPosition()
qreal percentage() const
bool remove(QPieSlice *slice)
bool remove(qsizetype index)
void removeMultiple(qsizetype index, int count)
bool replace(QPieSlice *oldSlice, QPieSlice *newSlice)
bool replace(qsizetype index, QPieSlice *slice)
bool replaceAll(const QList<QPieSlice *> &slices)
QPieSeries *series() const
void setBorderColor(QColor color)
void setBorderWidth(qreal borderWidth)
void setColor(QColor color)
void setExplodeDistanceFactor(qreal factor)
void setExploded(bool exploded)
void setLabel(const QString &label)
void setLabelArmLengthFactor(qreal factor)
void setLabelColor(QColor color)
void setLabelFont(const QFont &font)
void setLabelPosition(QPieSlice::LabelPosition position)
void setLabelVisible(bool visible = true)
void setSubSlicesRatio(qreal subSlicesRatio)
void setValue(qreal value)
QQmlListProperty<QPieSlice> sliceChildren()
qreal startAngle() const
QList<QPieSlice *> subSlices() const
qsizetype subSlicesCount() const
qreal subSlicesRatio() const
qreal subSlicesSum() const
bool take(QPieSlice *slice)
qreal value() const

Ranuras públicas

void clear()

Señales

void angleSpanChanged()
void borderColorChanged()
void borderWidthChanged()
void colorChanged()
void explodeDistanceFactorChanged()
void explodedChanged()
void labelArmLengthFactorChanged()
void labelChanged()
void labelColorChanged()
void labelFontChanged()
void labelPositionChanged()
void labelVisibleChanged()
void percentageChanged()
void startAngleChanged()
void subSlicesAdded(const QList<QPieSlice *> &slices)
void subSlicesCountChanged(qsizetype count)
void subSlicesRatioChanged(qreal newSubSlicesRatio)
void subSlicesRemoved(const QList<QPieSlice *> &slices)
void subSlicesSumChanged(qreal sum)
void valueChanged()

Descripción detallada

Una porción de tarta tiene un valor y una etiqueta. Cuando la rebanada se añade a una serie de tarta, el objeto QPieSeries calcula el porcentaje de la rebanada comparado con la suma de todas las rebanadas de la serie para determinar el tamaño real de la rebanada en el gráfico.

Por defecto, la etiqueta está oculta. Si es visible, puede estar situada fuera de la rebanada y conectada a ella con un brazo o centrada dentro de la rebanada horizontalmente o en paralelo con la tangencial o la normal del arco de la rebanada.

Por defecto, el aspecto visual de la rebanada se establece mediante un tema, pero éste puede anularse especificando las propiedades de la rebanada. Sin embargo, si se cambia el tema después de personalizar las rebanadas, se perderá toda la personalización.

Para permitir la interacción del usuario con el gráfico circular, se emiten algunas señales básicas cuando el usuario hace clic en las porciones o pasa el ratón sobre ellas.

Una porción de tarta puede contener porciones secundarias.

Véase también QPieSeries.

Documentación de tipos de miembros

enum class QPieSlice::LabelPosition

Este enum describe la posición de la etiqueta de corte.

ConstanteValorDescripción
QPieSlice::LabelPosition::Outside0La etiqueta se encuentra fuera de la rebanada conectada a ella con un brazo. Este es el valor por defecto.
QPieSlice::LabelPosition::InsideHorizontal1La etiqueta está centrada dentro del corte y dispuesta horizontalmente.
QPieSlice::LabelPosition::InsideTangential2La etiqueta está centrada en el corte y girada en paralelo a la tangente del arco del corte.
QPieSlice::LabelPosition::InsideNormal3La etiqueta se centra en el corte y se gira para que sea paralela a la normal del arco del corte.

Documentación de propiedades

[read-only] angleSpan : qreal

Esta propiedad mantiene la amplitud de la rebanada en grados. Una tarta completa tiene 360 grados, donde 0 grados está a las 12 en punto. Se actualiza automáticamente cuando la porción se añade a la serie.

Funciones de acceso:

qreal angleSpan() const

Señal del notificador:

void angleSpanChanged()

borderColor : QColor

Esta propiedad contiene el color utilizado para dibujar el borde del corte. Es una propiedad muy útil para modificar el corte.

Funciones de acceso:

QColor borderColor() const
void setBorderColor(QColor color)

Señal del notificador:

void borderColorChanged()

Véase también borderWidth.

borderWidth : qreal

Esta propiedad contiene el ancho del borde del corte. Es una propiedad muy útil para modificar la anchura del borde del corte.

Funciones de acceso:

qreal borderWidth() const
void setBorderWidth(qreal borderWidth)

Señal del notificador:

void borderWidthChanged()

Véase también borderColor.

color : QColor

Esta propiedad contiene el color de relleno del corte. Se trata de una propiedad muy útil para modificar el color de relleno del corte.

Funciones de acceso:

QColor color() const
void setColor(QColor color)

Señal del notificador:

void colorChanged()

explodeDistanceFactor : qreal

Determina a qué distancia de la tarta explota la rebanada.

  • 1.0 significa que la distancia es igual al radio.
  • 0.5 significa que la distancia es la mitad del radio.

Por defecto, la distancia es 0.15

Funciones de acceso:

qreal explodeDistanceFactor() const
void setExplodeDistanceFactor(qreal factor)

Señal del notificador:

void explodeDistanceFactorChanged()

Véase también exploded.

exploded : bool

Esta propiedad indica si la rebanada está separada de la tarta.

Funciones de acceso:

bool isExploded() const
void setExploded(bool exploded)

Señal del notificador:

void explodedChanged()

Véase también explodeDistanceFactor.

label : QString

Esta propiedad contiene la etiqueta del corte.

Nota: La cadena puede tener formato HTML.

Funciones de acceso:

QString label() const
void setLabel(const QString &label)

Señal del notificador:

void labelChanged()

Véase también labelVisible, labelFont, y labelArmLengthFactor.

labelArmLengthFactor : qreal

Esta propiedad contiene la longitud del brazo de la etiqueta. El factor es relativo al radio del pastel. Por ejemplo

  • 1.0 significa que la longitud es igual al radio.
  • 0,5 significa que la longitud es la mitad del radio.

Por defecto, la longitud del brazo es 0.15

Funciones de acceso:

qreal labelArmLengthFactor() const
void setLabelArmLengthFactor(qreal factor)

Señal notificadora:

void labelArmLengthFactorChanged()

Véase también label, labelVisible, y labelFont.

labelColor : QColor

Esta propiedad contiene el color utilizado para dibujar la etiqueta de la rebanada.

Funciones de acceso:

QColor labelColor() const
void setLabelColor(QColor color)

Señal del notificador:

void labelColorChanged()

labelFont : QFont

Esta propiedad contiene la fuente utilizada para dibujar el texto de la etiqueta.

Funciones de acceso:

QFont labelFont() const
void setLabelFont(const QFont &font)

Señal del notificador:

void labelFontChanged()

Véase también label, labelVisible, y labelArmLengthFactor.

labelPosition : LabelPosition

Esta propiedad contiene la posición de la etiqueta de la rebanada.

Funciones de acceso:

QPieSlice::LabelPosition labelPosition()
void setLabelPosition(QPieSlice::LabelPosition position)

Señal del notificador:

void labelPositionChanged()

Véase también label y labelVisible.

labelVisible : bool

Esta propiedad contiene la visibilidad de la etiqueta de la rebanada. Por defecto, la etiqueta no es visible.

Funciones de acceso:

bool isLabelVisible() const
void setLabelVisible(bool visible = true)

Señal del notificador:

void labelVisibleChanged()

Véase también label, labelFont, y labelArmLengthFactor.

[read-only] percentage : qreal

Esta propiedad contiene el porcentaje de la rebanada en comparación con la suma de todas las rebanadas de la serie. El valor real oscila entre 0,0 y 1,0. Se actualiza automáticamente cuando se añade el trozo a la serie.

Funciones de acceso:

qreal percentage() const

Señal del notificador:

void percentageChanged()

Véase también value y QPieSeries::sum.

[read-only] sliceChildren : QQmlListProperty<QPieSlice>

La lista de subcortes que contiene este corte. Se trata de una propiedad por defecto que permite especificar subcortes dentro de un elemento slice en QML sin utilizar explícitamente el nombre de la propiedad children.

Funciones de acceso:

QQmlListProperty<QPieSlice> sliceChildren()

[read-only] startAngle : qreal

Esta propiedad mantiene el ángulo inicial de esta rebanada en la serie a la que pertenece. Una tarta completa tiene 360 grados, donde 0 grados está a las 12 en punto. Se actualiza automáticamente cuando la porción se añade a la serie.

Funciones de acceso:

qreal startAngle() const

Señal del notificador:

void startAngleChanged()

[read-only] subSlicesCount : qsizetype

Esta propiedad contiene el número de subcortes del corte.

Funciones de acceso:

qsizetype subSlicesCount() const

Señal del notificador:

void subSlicesCountChanged(qsizetype count)

subSlicesRatio : qreal

Tamaño relativo de los subcortes en comparación con el corte principal. El valor oscila entre 0,0 y 1,0, donde 1,0 significa que los subcortes ocupan el mismo espacio que el corte principal sin subcortes. El valor por defecto es 0,6.

Funciones de acceso:

qreal subSlicesRatio() const
void setSubSlicesRatio(qreal subSlicesRatio)

Señal de notificación:

void subSlicesRatioChanged(qreal newSubSlicesRatio)

[read-only] subSlicesSum : qreal

Esta propiedad contiene la suma de todas las subdivisiones.

El corte lleva la cuenta de la suma de todos los subcortes que contiene.

Funciones de acceso:

qreal subSlicesSum() const

Señal notificadora:

void subSlicesSumChanged(qreal sum)

value : qreal

Esta propiedad contiene el valor de la rebanada.

Nota: Un valor negativo se convierte en positivo.

Funciones de acceso:

qreal value() const
void setValue(qreal value)

Señal del notificador:

void valueChanged()

Véase también percentage() y QPieSeries::sum().

Documentación de las funciones miembro

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

Construye una rebanada vacía con el padre parent.

Véase también QPieSeries::append() y QPieSeries::insert().

QPieSlice::QPieSlice(const QString &label, qreal value, QObject *parent = nullptr)

Construye una rebanada vacía con los datos especificados value, label, y parent.

Véase también QPieSeries::append() y QPieSeries::insert().

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

Elimina el corte. El corte no debe eliminarse si se ha añadido a una serie.

[invokable] bool QPieSlice::append(QPieSlice *slice)

Añade la subdivisión especificada por slice a la subdivisión. La propiedad de la subdivisión se pasa a la subdivisión.

Devuelve true si la anexión se realiza correctamente.

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

[invokable] bool QPieSlice::append(const QList<QPieSlice *> &slices)

Añade la matriz de subcortes especificada por slices al corte. La propiedad de la subdivisión se pasa a la subdivisión.

Devuelve true si la anexión tiene éxito.

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

[invokable] QPieSlice *QPieSlice::append(const QString &label, qreal value)

Añade una única subfragmentación con las direcciones value y label especificadas. La propiedad de la subfragmentación se pasa a la serie. Devuelve null si value es NaN, Inf, o -Inf y no añade nada a la serie.

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

[invokable] QPieSlice *QPieSlice::at(qsizetype index) const

Devuelve el PieSlice en la posición index. Devuelve null si no se ha encontrado PieSlice.

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

[slot] void QPieSlice::clear()

Borra todos los subcortes del corte.

[invokable] QPieSlice *QPieSlice::find(const QString &label) const

Busca un PieSlice que contenga la etiqueta label. Devuelve el PieSlice si lo encuentra, null en caso contrario.

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

[invokable] bool QPieSlice::insert(qsizetype index, QPieSlice *slice)

Inserta la subdivisión especificada por slice en la subdivisión anterior a la subdivisión en la posición especificada por index. La propiedad de la subdivisión se pasa a la subdivisión.

Devuelve true si la inserción tiene éxito.

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

bool QPieSlice::isEmpty() const

Devuelve true si la lista de subcortes está vacía.

[invokable] bool QPieSlice::remove(QPieSlice *slice)

Elimina una única subdivisión, especificada por slice, de la subdivisión y la borra permanentemente.

No se puede hacer referencia al puntero después de esta llamada.

Devuelve true si la eliminación tiene éxito.

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

[invokable] bool QPieSlice::remove(qsizetype index)

Elimina el PieSlice en la ubicación index. El PieSlice será eliminado permanentemente. Devuelve true si la eliminación se ha realizado correctamente.

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

[invokable] void QPieSlice::removeMultiple(qsizetype index, int count)

Elimina varias PieSlices de la rebanada empezando por index hasta un número de count. Las PieSlices se eliminarán permanentemente.

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

[invokable] bool QPieSlice::replace(QPieSlice *oldSlice, QPieSlice *newSlice)

Sustituye el PieSlice oldSlice por newSlice si se encuentra en el slice. oldSlice se borrará permanentemente. Devuelve true si la sustitución se ha realizado correctamente.

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

[invokable] bool QPieSlice::replace(qsizetype index, QPieSlice *slice)

Sustituye el PieSlice en la posición index por el especificado por slice. El PieSlice original será eliminado permanentemente. Devuelve false si el reemplazo de alguno de los PieSlices falla.

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

[invokable] bool QPieSlice::replaceAll(const QList<QPieSlice *> &slices)

Sustituye toda la lista de PieSlices de la rebanada por la lista especificada por slices. Todos los PieSlices originales serán eliminados permanentemente. Devuelve true si todos los PieSlices han sido reemplazados con éxito.

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

QPieSeries *QPieSlice::series() const

Devuelve la serie a la que pertenece esta rebanada.

Véase también QPieSeries::append().

QList<QPieSlice *> QPieSlice::subSlices() const

Devuelve una lista de subcortes que pertenecen a este corte.

[signal] void QPieSlice::subSlicesAdded(const QList<QPieSlice *> &slices)

Esta señal se emite cuando los subcortes especificados por slices se añaden al corte.

Véase también append().

qsizetype QPieSlice::subSlicesCount() const

Devuelve el número de subcortes de este corte.

Nota: Función Getter para la propiedad subSlicesCount.

[signal] void QPieSlice::subSlicesRemoved(const QList<QPieSlice *> &slices)

Esta señal se emite cuando las subdivisiones especificadas por slices se eliminan de la subdivisión.

Véase también remove().

qreal QPieSlice::subSlicesSum() const

Devuelve la suma de todos los valores de subcortes de este corte.

Nota: Función Getter para la propiedad subSlicesSum.

Véase también QPieSlice::value(), QPieSlice::setValue(), y QPieSlice::percentage().

[invokable] bool QPieSlice::take(QPieSlice *slice)

Toma una única subcorta, especificada por slice, de la serie. No elimina el objeto slice.

Nota: La rebanada sigue siendo el objeto padre de la rebanada. Debe establecer el objeto padre para tomar la propiedad completa.

Devuelve true si la operación de toma se ha realizado correctamente.

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

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