本页内容

QPieSeries Class

QPieSeries 类用于以饼图形式展示数据。更多内容...

Header: #include <QPieSeries>
In QML: PieSeries
Inherits: QAbstractSeries
Status: Deprecated

该类已弃用。我们强烈建议不要在新的代码中使用它。

属性

公共函数

QPieSeries(QObject *parent = nullptr)
virtual ~QPieSeries()
bool append(QPieSlice *slice)
bool append(const QList<QPieSlice *> &slices)
QPieSlice *append(const QString &label, qreal value)
void clear()
int count() const
qreal holeSize() const
qreal horizontalPosition() const
bool insert(int index, QPieSlice *slice)
bool isEmpty() const
qreal pieEndAngle() const
qreal pieSize() const
qreal pieStartAngle() const
bool remove(QPieSlice *slice)
void setHoleSize(qreal holeSize)
void setHorizontalPosition(qreal relativePosition)
void setLabelsPosition(QPieSlice::LabelPosition position)
void setLabelsVisible(bool visible = true)
void setPieEndAngle(qreal angle)
void setPieSize(qreal relativeSize)
void setPieStartAngle(qreal startAngle)
void setVerticalPosition(qreal relativePosition)
QList<QPieSlice *> slices() 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 clicked(QPieSlice *slice)
void countChanged()
void doubleClicked(QPieSlice *slice)
void hovered(QPieSlice *slice, bool state)
void pressed(QPieSlice *slice)
void released(QPieSlice *slice)
void removed(const QList<QPieSlice *> &slices)
void sumChanged()

详细说明

一个饼图系列由定义为 `QPieSlice ` 对象的扇区组成。这些扇区可以包含任意数值,因为 `QPieSeries` 对象会计算每个扇区相对于该系列中所有扇区总和的百分比,从而确定该扇区在图表中的实际大小。

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

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

请参阅“带小部件的图表”图库,了解如何使用 QPieSeries。

一个扇区呈爆炸状展开并标注为“Joe”的饼图

柠檬糖霜营养成分的环形图,包含蛋白质、脂肪、其他和碳水化合物的扇区,脂肪部分特别突出

另请参阅 QPieSlice 和QChart 。

属性文档

[read-only] count : int

该属性存储序列中的切片数量。

访问函数:

int count() const

通知信号:

void countChanged()

endAngle : qreal

该属性存储扇形的终角。

一个完整的圆饼为360度,其中0度位于12点钟方向。

默认值为 360。

访问函数:

qreal pieEndAngle() const
void setPieEndAngle(qreal angle)

holeSize : qreal

该属性存储甜甜圈孔的大小。

该值是相对于图表矩形而言的,因此:

  • 0.0 表示最小尺寸(绘制完整的无孔饼图)。
  • 1.0 是图表所能容纳的最大尺寸(环形图无宽度)。

设置此属性时,系统会根据需要调整 `size ` 属性,以确保孔洞大小不超过饼图的大小。

默认值为 0.0。

访问函数:

qreal holeSize() const
void setHoleSize(qreal holeSize)

horizontalPosition : qreal

该属性控制饼图的水平位置。

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

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

默认值为 0.5(居中)。

访问函数:

qreal horizontalPosition() const
void setHorizontalPosition(qreal relativePosition)

另请参阅 verticalPosition 。

size : qreal

该属性用于存储饼图的大小。

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

  • 0.0 表示最小尺寸(不绘制饼图)。
  • 1.0 是图表中可容纳的最大尺寸。

设置此属性时,系统会根据需要调整 `holeSize ` 属性,以确保空洞大小不超过饼图大小。

默认值为 0.7。

访问函数:

qreal pieSize() const
void setPieSize(qreal relativeSize)

startAngle : qreal

该属性存储了扇形的起始角度。

一个完整的圆饼为360度,其中0度位于12点钟方向。

默认值为 0。

访问函数:

qreal pieStartAngle() const
void setPieStartAngle(qreal startAngle)

[read-only] sum : qreal

该属性存储所有切片的总和。

该序列会记录其所包含的所有切片的总和。

访问函数:

qreal sum() const

通知信号:

void sumChanged()

verticalPosition : qreal

该属性用于设置饼图的垂直位置。

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

  • 0.0 表示绝对顶部。
  • 1.0 表示绝对底部。

默认值为 0.5(居中)。

访问函数:

qreal verticalPosition() const
void setVerticalPosition(qreal relativePosition)

另请参阅 horizontalPosition 。

成员函数文档

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

创建一个作为parent 子节点的系列对象。

[virtual noexcept] QPieSeries::~QPieSeries()

删除饼图系列及其各扇区。

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

当将slices 指定的切片添加到序列中时,会发出此信号。

另请参阅 append() 和insert()。

bool QPieSeries::append(QPieSlice *slice)

将由 `slice ` 指定的切片追加到序列中。切片的所有权将转移给该序列。

如果追加成功,则返回 `true `。

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

将由 `slices ` 指定的切片数组追加到序列中。切片的所有权将转移给该序列。

如果追加成功,则返回 `true `。

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

将一个具有指定value 和label 的切片追加到序列中。切片的所有权将传递给序列。如果value 的值为NaN 、Inf 或-Inf ,则返回null,且不会向序列中添加任何内容。

void QPieSeries::clear()

清除该序列中的所有切片。

[signal] void QPieSeries::clicked(QPieSlice *slice)

当点击由slice 指定的切片时,会触发此信号。

另请参阅 QPieSlice::clicked()。

int QPieSeries::count() const

返回该序列中切片的数量。

注意: 这是 count 属性的获取器 函数。

[signal] void QPieSeries::countChanged()

当切片计数发生变化时,会发出此信号。

注意: 这是属性count的通知器 信号。

另请参阅 count 。

[signal] void QPieSeries::doubleClicked(QPieSlice *slice)

当双击由slice 指定的切片时,会发出此信号。

另请参阅 QPieSlice::doubleClicked()。

[signal] void QPieSeries::hovered(QPieSlice *slice, bool state)

当鼠标悬停在由slice 指定的切片上时,会发出此信号。当鼠标移到该切片上时,state 会变为true ;当鼠标再次移开时,它会变为false 。

另请参阅 QPieSlice::hovered()。

bool QPieSeries::insert(int index, QPieSlice *slice)

将由 `slice ` 指定的切片插入到序列中,位置在由 `index` 指定的切片之前。切片的所有权将传递给该序列。

如果插入成功,则返回true 。

bool QPieSeries::isEmpty() const

如果序列为空,则返回true 。

qreal QPieSeries::pieEndAngle() const

返回扇形的结束角度。

一个完整的扇形为 360 度,其中 0 度位于 12 点钟方向。

注意: 这是属性 `endAngle`的获取 函数。

另请参阅 setPieEndAngle()、pieStartAngle() 和setPieStartAngle()。

[signal] void QPieSeries::pressed(QPieSlice *slice)

当用户点击由slice 指定的切片并按住鼠标按钮时,会触发此信号。

另请参阅 QPieSlice::pressed()。

[signal] void QPieSeries::released(QPieSlice *slice)

当用户松开slice 指定的切片上的鼠标按钮时,会发出此信号。

另请参阅 QPieSlice::released()。

bool QPieSeries::remove(QPieSlice *slice)

从序列中移除由 `slice` 指定的单个切片,并将其永久删除。

调用此方法后,该指针将无法被引用。

若移除成功,则返回true 。

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

当由slices 指定的切片从序列中移除时,会发出此信号。

另请参阅 remove()。

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

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

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

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

void QPieSeries::setLabelsVisible(bool visible = true)

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

注意:此 函数仅影响该系列中的当前切片。如果添加了新切片,其默认标签可见性为false 。

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

void QPieSeries::setPieEndAngle(qreal angle)

设置扇形的结束角度。

一个完整的扇形为360度,其中0度位于12点钟方向。

angle 该值必须大于起始角度。

注意: 这是属性endAngle 的设置 函数。

另请参阅 pieEndAngle()、pieStartAngle() 和setPieStartAngle()。

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

返回属于该序列的切片列表。

qreal QPieSeries::sum() const

返回该序列中所有切片值的总和。

注意: 这是 sum 属性的获取器 函数。

另请参阅 QPieSlice::value()、QPieSlice::setValue(),以及QPieSlice::percentage()。

[signal] void QPieSeries::sumChanged()

当所有切片的总和发生变化时,会发出此信号。

注意: 这是属性sum的通知器 信号。

另请参阅 sum 。

bool QPieSeries::take(QPieSlice *slice)

从序列中获取一个由slice 指定的切片。不会删除该切片对象。

注意:序列 仍为该切片的父对象。若要完全拥有该切片,必须将其父对象设置为序列 。

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

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

重新实现了属性QAbstractSeries::type 的访问函数。

返回序列的类型。

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

将由 `slice ` 指定的切片追加到序列中,并返回该序列的引用。切片的所有权将转移给该序列。

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