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

属性

公共函数

QPieSeries(QObject *parent = nullptr)
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 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 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

属性文档

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