PieSlice QML Type
代表饼系列中的一个切片。更多
| Import Statement: | import QtGraphs |
| In C++: | QPieSlice |
- 所有成员的列表,包括继承成员
- PieSlice 是Qt Graphs QML Types for 2D 的一部分。
属性
- angleSpan : real
- borderColor : color
- borderWidth : real
- color : color
- explodeDistanceFactor : real
- exploded : bool
- label : string
- labelArmLengthFactor : real
- labelColor : color
- labelFont : font
- labelPosition : enumeration
- labelVisible : bool
- percentage : real
- startAngle : real
- subSlicesCount : int
- subSlicesSum : real
- value : real
信号
- angleSpanChanged()
- borderColorChanged()
- borderWidthChanged()
- colorChanged()
- explodeDistanceFactorChanged()
- explodedChanged()
- labelArmLengthFactorChanged()
- labelChanged()
- labelColorChanged()
- labelFontChanged()
- labelFontChanged()
- labelPositionChanged()
- labelVisibleChanged()
- percentageChanged()
- startAngleChanged()
- subSlicesAdded(list<PieSlice> slices)
- subSlicesCountChanged(qsizetype count)
- subSlicesRemoved(list<PieSlice> slices)
- subSlicesSumChanged(qreal sum)
- valueChanged()
方法
- PieSlice append(string label, real value)
- PieSlice at(int index)
- void clear()
- PieSlice find(string label)
- bool remove(PieSlice slice)
- bool remove(int index)
- void removeMultiple(int index, int count)
- bool replace(PieSlice oldSlice, PieSlice newSlice)
- bool replace(int index, PieSlice slice)
- bool replaceAll(list<PieSlice> slices)
- bool take(PieSlice slice)
详细说明
饼片有一个值和一个标签。当切片被添加到饼系列中时,PieSeries 类型会计算切片与系列中所有切片总和的百分比,以确定图形中切片的实际大小。
默认情况下,标签是隐藏的。如果标签可见,它可以位于切片外侧并用一条臂与切片相连,也可以位于切片内侧的中心位置,可以水平放置,也可以与切片圆弧的切线或法线平行放置。
默认情况下,切片的视觉外观由主题设置,但可以通过指定切片属性来覆盖主题。不过,如果在自定义切片后更改主题,所有自定义功能都将丢失。
PieSlice 类型应作为PieSeries 类型的子类型使用。例如
另外,也可以使用PieSeries.append() 方法将切片添加到饼系列中。
在这种情况下,可以使用PieSeries.at() 或PieSeries.find() 访问单个 PieSlice 实例的属性。
饼片可以包含子饼片。
PieSeries { PieSlice { label: "example" value: 1 color: "orange" exploded: true PieSlice { label: "example2" value: 2 color: "red" } PieSlice { label: "example3" value: 3 color: "yellow" exploded: true } } PieSlice { label: "example4" value: 4 color: "green" } }

另请参阅 PieSeries 。
属性文档
angleSpan : real [read-only]
切片的跨度,单位为度。一个完整的饼是 360 度,其中 0 度是上午 12 点钟的位置。切片添加到系列后自动更新。
borderColor : color
用于绘制切片边框的颜色。
另请参阅 borderWidth 。
borderWidth : real
切片边框的宽度。这是一个方便修改切片边框宽度的属性。
另请参阅 borderColor 。
color : color
切片的填充颜色。
explodeDistanceFactor : real
决定切片爆炸时离饼的距离。
- 1.0 表示距离与半径相同。
- 0.5 表示距离是半径的一半。
默认距离为 0.15
另请参见 exploded 。
exploded : bool
切片是否从馅饼中分离出来。
另请参阅 explodeDistanceFactor 。
label : string
切片的标签。
注意: 字符串可以是 HTML 格式。
labelArmLengthFactor : real
标签臂的长度。该系数相对于饼的半径。例如
- 1.0 表示长度与半径相同。
- 0.5 表示长度是半径的一半。
默认情况下,臂长为 0.15。
另请参阅 labelVisible 。
labelColor : color
用于绘制切片标签的颜色。
labelFont : font
用于切片标签的字体。
更多信息,请参见font 。
另请参阅 labelVisible 和labelPosition 。
labelPosition : enumeration
描述切片标签的位置。
| 常数 | 描述 |
|---|---|
PieSlice.LabelPosition.Outside | 标签位于用臂连接的切片外部。这是默认值。 |
PieSlice.LabelPosition.InsideHorizontal | 标签位于切片中心,水平放置。 |
PieSlice.LabelPosition.InsideTangential | 标签位于切片中心,旋转后与切片圆弧的切线平行。 |
PieSlice.LabelPosition.InsideNormal | 标签在切片内居中,旋转后与切片圆弧的法线平行。 |
另请参阅 labelVisible 。
labelVisible : bool
切片标签的可见性。默认情况下,标签不可见。
percentage : real [read-only]
切片占系列中所有切片总和的百分比。实际值从 0.0 到 1.0 不等。切片添加到系列后自动更新。
startAngle : real [read-only]
该片在所属系列中的起始角度。一个完整的饼是 360 度,其中 0 度为 12 点钟方向。切片添加到系列后自动更新。
subSlicesCount : int [read-only]
切片中子切片的数量。
subSlicesSum : real [read-only]
所有子片段的总和。
切片会记录其持有的所有子切片的总和。
value : real
片段的值。
注意: 负值会转换为正值。
信号文档
angleSpanChanged()
当切片的角度跨度发生变化时会发出该信号。
注: 相应的处理程序是onAngleSpanChanged 。
另请参见 angleSpan 。
borderColorChanged()
当切片边框颜色发生变化时发出此信号。
注: 相应的处理程序是onBorderColorChanged 。
另请参见 borderColor 。
borderWidthChanged()
该信号在切片边框宽度发生变化时发出。
注: 相应的处理程序是onBorderWidthChanged 。
另请参见 borderWidth 。
colorChanged()
当切片颜色发生变化时会发出该信号。
注: 相应的处理程序是onColorChanged 。
explodeDistanceFactorChanged()
当爆炸距离因子发生变化时会发出该信号。
注: 相应的处理程序是onExplodeDistanceFactorChanged 。
另请参见 explodeDistanceFactor 。
explodedChanged()
爆炸属性发生变化时会发出该信号。
注: 相应的处理程序是onExplodedChanged 。
另请参阅 exploded 。
labelArmLengthFactorChanged()
当标签臂长系数发生变化时发出该信号。
注: 相应的处理程序是onLabelArmLengthFactorChanged 。
另请参见 labelArmLengthFactor 。
labelChanged()
该信号在切片标签发生变化时发出。
注: 相应的处理程序是onLabelChanged 。
另请参见 label 。
labelColorChanged()
当切片标签颜色发生变化时会发出该信号。
注: 相应的处理程序是onLabelColorChanged 。
另请参见 labelColor 。
labelFontChanged()
当切片的标签字体发生变化时会发出该信号。
注: 相应的处理程序是onLabelFontChanged 。
另请参见 labelFont 。
labelFontChanged()
标签字体发生变化时发出该信号。
注意: 相应的处理程序是onLabelFontChanged 。
另请参见 labelFont 。
labelPositionChanged()
当标签位置发生变化时发出该信号。
注: 相应的处理程序是onLabelPositionChanged 。
另请参见 labelPosition 。
labelVisibleChanged()
当切片标签的可见性发生变化时会发出该信号。
注: 相应的处理程序是onLabelVisibleChanged 。
另请参见 labelVisible 。
percentageChanged()
当切片的百分比发生变化时会发出该信号。
注: 相应的处理程序是onPercentageChanged 。
另请参见 percentage 。
startAngleChanged()
当切片的起始角度发生变化时会发出该信号。
注: 相应的处理程序是onStartAngleChanged 。
另请参见 startAngle 。
subSlicesAdded(list<PieSlice> slices)
当slices 指定的子切片添加到切片时,会发出该信号。
注: 相应的处理程序是onSubSlicesAdded 。
subSlicesCountChanged(qsizetype count)
当子切片count 发生变化时会发出该信号。
注: 相应的处理程序是onSubSlicesCountChanged 。
另请参阅 subSlicesCount 。
subSlicesRemoved(list<PieSlice> slices)
当slices 指定的子切片从切片中移除时,会发出该信号。
注: 相应的处理程序是onSubSlicesRemoved 。
subSlicesSumChanged(qreal sum)
当所有子切片的sum 发生变化时,将发出该信号。
注: 相应的处理程序是onSubSlicesSumChanged 。
另请参阅 subSlicesSum 。
valueChanged()
该信号在切片值发生变化时发出。
注: 相应的处理程序是onValueChanged 。
另请参见 value 。
方法文档
PieSlice append(string label, real value)
在片段中添加标签为label 、值为value 的新子片段。
PieSlice at(int index)
返回index 指定位置的子分片。如果索引无效,则返回空值。
void clear()
从切片中删除所有子切片。
PieSlice find(string label)
返回具有标签label 的第一个子切片。如果找不到标签,则返回空值。
bool remove(PieSlice slice)
从切片中删除slice 指定的子切片。如果删除成功,则返回true ,否则返回false 。
bool remove(int index)
从切片中删除index 指定的子切片。如果删除成功,则返回true ,否则返回false 。
void removeMultiple(int index, int count)
移除index 和count 指定的一系列子切片。即使删除一个子片段失败,也会遍历所有子片段。
bool replace(PieSlice oldSlice, PieSlice newSlice)
用newSlice 替换oldSlice 指定的子切片。如果替换成功,则返回true ,否则返回false 。如果替换成功,则销毁oldSlice 。
bool replace(int index, PieSlice slice)
从index 处的片段替换slice 指定的子片段。如果替换成功,则返回true ,否则返回false 。
bool replaceAll(list<PieSlice> slices)
用slices 完全取代当前的所有子切片。大小无需匹配。如果slices 中的任何PieSlice 无效,则返回 false。
bool take(PieSlice slice)
从片段中提取一个子片段(由slice 指定)。不会删除子片段对象。如果成功,则返回true 。
© 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.