在本页

PieSlice QML Type

代表饼系列中的一个切片。更多

Import Statement: import QtGraphs
In C++: QPieSlice

属性

信号

方法

  • 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 {
    PieSlice {
        label: "example"
        value: 1
    }
}

另外,也可以使用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

另请参阅 labelVisiblelabelPosition

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)

移除indexcount 指定的一系列子切片。即使删除一个子片段失败,也会遍历所有子片段。

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.