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 是Qt Graphs C++ Classes for 2D 的一部分。
属性
|
|
公共函数
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)
将具有指定value 和label 的单个片段添加到系列中。切片所有权将传递给系列。如果value 是NaN
、Inf
或-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)
搜索包含标签label 的PieSlice 。如果找到,则返回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 位置上的PieSlice 。PieSlice 将被永久删除。如果删除成功,则返回true
。
注: 可通过元对象系统和 QML 调用此函数。请参见Q_INVOKABLE 。
[invokable]
void QPieSeries::removeMultiple(qsizetype index, int count)
从index 至count 的数列中删除多个 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.