QPieSeries Class

QPieSeries 类以饼图的形式显示数据。更多

Header: #include <QPieSeries>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
在 QML 中: PieSeries
继承: QAbstractSeries

公共类型

(since 6.10) enum class LabelVisibility { None, First, Even, Odd }

属性

公共函数

QPieSeries(QObject *parent = nullptr)
QPieSeries::LabelVisibility angleSpanLabelVisibility() const
qreal angleSpanVisibleLimit() const
bool append(QPieSlice *slice)
bool append(const QList<QPieSlice *> &slices)
QPieSlice *append(const QString &label, qreal value)
QPieSlice *at(qsizetype index)
void clear()
qsizetype count() const
qreal endAngle() const
QPieSlice *find(const QString &label)
qreal holeSize() const
qreal horizontalPosition() const
bool insert(qsizetype index, QPieSlice *slice)
bool isEmpty() const
qreal pieSize() const
bool remove(QPieSlice *slice)
bool remove(qsizetype index)
void removeMultiple(qsizetype index, int count)
bool replace(const QList<QPieSlice *> &slices)
bool replace(QPieSlice *oldSlice, QPieSlice *newSlice)
bool replace(qsizetype index, QPieSlice *slice)
void setAngleSpanLabelVisibility(QPieSeries::LabelVisibility newAngleSpanVisibleMode)
void setAngleSpanVisibleLimit(qreal newAngleSpanVisibleLimit)
void setEndAngle(qreal angle)
void setHoleSize(qreal holeSize)
void setHorizontalPosition(qreal relativePosition)
void setLabelsPosition(QPieSlice::LabelPosition position)
void setLabelsVisible(bool visible)
void setPieSize(qreal relativeSize)
void setStartAngle(qreal angle)
void setVerticalPosition(qreal relativePosition)
QList<QPieSlice *> slices() const
qreal startAngle() const
qreal sum() const
bool take(QPieSlice *slice)
qreal verticalPosition() const
QPieSeries &operator<<(QPieSlice *slice)

重新实现的公共函数

virtual QAbstractSeries::SeriesType type() const override

信号

void added(const QList<QPieSlice *> &slices)
void angleSpanLabelVisibilityChanged(QPieSeries::LabelVisibility visibility)
void angleSpanVisibleLimitChanged(qreal limit)
void countChanged()
void endAngleChanged()
void holeSizeChanged()
void horizontalPositionChanged()
void pieSizeChanged()
void removed(const QList<QPieSlice *> &slices)
void startAngleChanged()
void sumChanged()
void verticalPositionChanged()

详细说明

饼系列由定义为QPieSlice 对象的切片组成。切片可以有任何值,因为 QPieSeries 对象会计算切片与系列中所有切片总和的百分比,以确定图形中切片的实际大小。

饼的大小和在图表上的位置是通过使用 0.0 到 1.0 之间的相对值来控制的。这些值与实际图形矩形有关。

默认情况下,饼被定义为完整饼。通过设置系列的起始角度和角度跨度,可以创建部分饼。全饼为 360 度,其中 0 位于 12 点钟位置。

另请参阅 QPieSlice

成员类型文档

[since 6.10] enum class QPieSeries::LabelVisibility

标签可见度模式。

常数说明
QPieSeries::LabelVisibility::None0角度跨度小于angleSpanVisibleLimit 的所有切片标签都将隐藏。
QPieSeries::LabelVisibility::First1除第一个标签外,角度跨度小于angleSpanVisibleLimit 的连续切片的所有标签都将被隐藏。这是默认值。
QPieSeries::LabelVisibility::Even2角度跨度小于angleSpanVisibleLimit 的连续切片的其他标签都将被隐藏,从第二个标签开始。
QPieSeries::LabelVisibility::Odd3从第一个标签开始,角度跨度小于angleSpanVisibleLimit 的其他每个连续切片标签都将被隐藏。

此枚举在 Qt 6.10 中引入。

另请参阅 QPieSeries::angleSpanVisibleLimit

属性文档

[since 6.10] angleSpanLabelVisibility : LabelVisibility

该属性用于保存标签可见性模式。

如果标签位于angleSpanVisibleLimit 设置的角度跨度限制之下,该模式将决定隐藏哪些标签。如果未设置angleSpanVisibleLimit ,则该模式无效。

此属性在 Qt 6.10 中引入。

访问功能:

QPieSeries::LabelVisibility angleSpanLabelVisibility() const
void setAngleSpanLabelVisibility(QPieSeries::LabelVisibility newAngleSpanVisibleMode)

Notifier 信号:

void angleSpanLabelVisibilityChanged(QPieSeries::LabelVisibility visibility)

另请参见 QPieSeries::angleSpanVisibleLimit

[since 6.10] angleSpanVisibleLimit : qreal

该属性用于保存标签可见性的角度跨度限制。

角度跨度将用作切片标签的可见度限制。角度跨度小于此值的切片将根据为系列设置的angleSpanLabelVisibility 改变其可见性。默认值为0 ,这意味着无论angleSpanLabelVisibility ,都不会隐藏任何切片。

此属性在 Qt 6.10 中引入。

访问功能:

qreal angleSpanVisibleLimit() const
void setAngleSpanVisibleLimit(qreal newAngleSpanVisibleLimit)

Notifier 信号:

void angleSpanVisibleLimitChanged(qreal limit)

另请参阅 QPieSeries::angleSpanLabelVisibility

[read-only] count : const qsizetype

此属性表示系列中的切片数。

访问功能:

qsizetype count() const

通知信号:

void countChanged()

endAngle : qreal

该属性表示饼的终止角。

一个完整的饼是 360 度,其中 0 度在 12 点钟位置。

默认值为 360。

访问功能:

qreal endAngle() const
void setEndAngle(qreal angle)

通知信号:

void endAngleChanged()

holeSize : qreal

该属性用于保存甜甜圈的孔洞大小。

在设置pieSize 属性时,如有必要,会对该属性进行调整,以确保孔的大小不大于派的大小。

默认值为 0.0。

访问功能:

qreal holeSize() const
void setHoleSize(qreal holeSize)

通知信号:

void holeSizeChanged()

horizontalPosition : qreal

此属性表示饼的水平位置。

该值相对于图形矩形,因此

  • 0.0 表示绝对左侧。
  • 1.0 为绝对向右。

默认值为 0.5(居中)。

访问功能:

qreal horizontalPosition() const
void setHorizontalPosition(qreal relativePosition)

通知信号:

void horizontalPositionChanged()

另请参见 verticalPosition

pieSize : qreal

此属性表示饼的大小。

该值相对于图形矩形,因此

  • 0.0 是最小饼大小(不绘制饼)。
  • 1.0 是适合图形的最大饼大小。

设置此属性时,必要时会调整holeSize 属性,以确保孔的大小不大于饼的大小。

默认值为 0.7。

访问功能:

qreal pieSize() const
void setPieSize(qreal relativeSize)

Notifier 信号:

void pieSizeChanged()

startAngle : qreal

该属性表示饼的起始角度。

一个完整的饼是 360 度,其中 0 度为 12 点钟位置。

默认值为 0。

访问功能:

qreal startAngle() const
void setStartAngle(qreal angle)

通知信号:

void startAngleChanged()

[read-only] sum : const qreal

该属性保存所有片段的总和。

数列会跟踪其持有的所有切片的总和。

访问功能:

qreal sum() const

通知信号:

void sumChanged()

verticalPosition : qreal

此属性表示饼的垂直位置。

该值相对于图形矩形,因此

  • 0.0 为绝对顶部。
  • 1.0 为绝对底部。

默认值为 0.5(居中)。

访问功能:

qreal verticalPosition() const
void setVerticalPosition(qreal relativePosition)

通知信号:

void verticalPositionChanged()

另请参见 horizontalPosition

成员函数文档

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

构建parent 的子系列对象。

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

slices 指定的切片添加到系列时,会发出该信号。

另请参阅 append().

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

slice 指定的片段添加到系列中。片段所有权将传递给系列。

如果追加成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

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

slices 指定的切片数组添加到系列中。切片所有权将传递给系列。

如果追加成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

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

将指定valuelabel 的单个片段添加到系列中。切片所有权将传递给系列。如果valueNaNInf-Inf ,则返回 null,并且不会向系列添加任何内容。

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

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

返回位置index 上的PieSlice 。如果未找到PieSlice ,则返回 null。

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

[invokable] void QPieSeries::clear()

清除系列中的所有切片。

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

qsizetype QPieSeries::count() const

返回此系列中切片的数量。

注: 属性计数的获取函数。

qreal QPieSeries::endAngle() const

返回饼的末端角度。

一个完整的饼是 360 度,其中 0 度在 12 点钟位置。

注: endAngle 属性的获取函数。

另请参阅 setEndAngle()、startAngle() 和setStartAngle()。

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

搜索包含标签labelPieSlice 。如果找到,则返回PieSlice ,否则为空。

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

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

slice 指定的片段插入index 指定位置的片段之前的系列。切片所有权将传递给系列。

如果插入成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

bool QPieSeries::isEmpty() const

如果序列为空,则返回true

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

从序列中删除slice 指定的单个切片,并永久删除该切片。

调用后不能再引用指针。

如果删除成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

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

删除index 位置上的PieSlicePieSlice 将被永久删除。如果删除成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

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

indexcount 的数列中删除多个 PieSlices。这些 PieSlices 将被永久删除。

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

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

slices 指定的切片从系列中移除时,会发出该信号。

另请参见 remove().

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

slices 指定的列表替换系列中的整个 PieSlices 列表。所有原始的 PieSlices 将被永久删除。如果成功替换了所有 PieSlices,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

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

newSlice 替换PieSlice oldSlice (如果在系列中找到)。oldSlice 将被永久删除。如果替换成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

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

slice 指定的PieSlice 替换位置index 上的 。原来的PieSlice 将被永久删除。如果替换任何 PieSlices 失败,则返回false

注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE

void QPieSeries::setEndAngle(qreal angle)

设置饼的末端角度。

一个完整的饼是 360 度,其中 0 度在 12 点钟位置。

angle 必须大于起始角度。

注: 属性endAngle 的设置函数。

另请参阅 endAngle()、startAngle() 和setStartAngle()。

void QPieSeries::setLabelsPosition(QPieSlice::LabelPosition position)

将所有切片标签的位置设置为position

注意: 此函数只影响系列中的当前切片。如果添加了新的切片,默认标签位置为 QPieSlice::LabelOutside。

另请参阅 QPieSlice::labelPosition() 和QPieSlice::setLabelPosition() 。

void QPieSeries::setLabelsVisible(bool visible)

将所有切片标签的可见性设置为visible

注意: 此功能只影响系列中的当前切片。如果添加了新切片,默认标签可见性为false

另请参阅 QPieSlice::isLabelVisible() 和QPieSlice::setLabelVisible()。

void QPieSeries::setStartAngle(qreal angle)

设置饼的起始角度。

一个完整的饼是 360 度,其中 0 度在 12 点钟位置。

angle 必须小于结束角。

注: 属性startAngle 的设置函数。

另请参阅 startAngle()、endAngle() 和setEndAngle()。

QList<QPieSlice *> QPieSeries::slices() const

返回属于此系列的切片列表。

qreal QPieSeries::startAngle() const

返回饼的起始角度。

一个完整的饼是 360 度,其中 0 度在 12 点钟位置。

注: 属性 startAngle 的获取函数。

另请参阅 setStartAngle()、endAngle() 和setEndAngle()。

qreal QPieSeries::sum() const

返回此系列中所有片段值的总和。

注: 属性 sum 的获取函数。

另请参阅 QPieSlice::value()、QPieSlice::setValue() 和QPieSlice::percentage()。

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

从序列中提取slice 指定的单个切片。不会删除切片对象。

注意: 系列仍是切片的父对象。您必须设置父对象才能获得完全所有权。

如果获取操作成功,则返回true

注: 可通过元对象系统和 QML 调用此函数。请参阅Q_INVOKABLE

[override virtual] QAbstractSeries::SeriesType QPieSeries::type() const

重构属性访问函数:QAbstractSeries::type

返回系列的类型。

QPieSeries &QPieSeries::operator<<(QPieSlice *slice)

slice 指定的片段添加到系列中,并返回该系列的引用。切片所有权将传递给系列。

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