跳到主要内容

Paint

Paint 属性

在画布上绘制形状时要使用的样式的描述。

anti_alias

是否对画布上绘制的线条和图像应用抗锯齿。默认为 True

blend_mode

绘制形状或合成图层时要应用的混合模式。

默认为 BlendMode.SRC_OVER

属性值为 BlendMode

blur_image

在画布上绘制图像时进行模糊处理。

有关详细信息,请参阅 Container.blur

color

在描边或填充形状时要使用的 颜色。默认为不透明黑色。

gradient

配置渐变绘制。该值是以下类之一的实例:

  • PaintLinearGradient
  • PaintRadialGradient
  • PaintSweepGradient

PaintLinearGradient

cv.Rect(
10,
10,
100,
100,
5,
ft.Paint(
gradient=ft.PaintLinearGradient(
(0, 10), (0, 100), colors=[ft.colors.BLUE, ft.colors.YELLOW]
),
style=ft.PaintingStyle.FILL,
),
)

PaintLinearGradient 类具有以下属性:

  • begin - Offset 类的实例。设置渐变的停止 0.0 的偏移量。
  • end - Offset 类的实例。设置渐变的停止 1.0 的偏移量。
  • colors - 渐变在每个停止点处应获取的颜色。如果 stops 不为空,则此列表的长度必须与 stops 的长度相同。此列表必须至少有两种颜色(否则,它不是渐变!)。
  • stops - 0.0 到 1.0 之间的值列表,表示渐变沿着渐变的分数。如果非空,则此列表的长度必须与 colors 相同。如果第一个值不是 0.0,则意味着在位置 0.0 处有一个停止点,并且颜色与 colors 中的第一个颜色相同。如果最后一个值不是 1.0,则意味着在位置 1.0 处有一个停止点,并且颜色与 colors 中的最后一个颜色相同。
  • tile_mode - 渐变在 beginend 之前和之后的平面上如何铺砌的模式。值是 GradientTileMode 枚举,支持的值有:CLAMP(默认值)、DECALMIRRORREPEATED。更多信息 here
  • rotation - 渐变的旋转,以其边界框的中心点为中心点,单位为 弧度

更多信息:

PaintRadialGradient

cv.Circle(
60,
170,
50,
ft.Paint(
gradient=ft.PaintRadialGradient(
(60, 170), 50, colors=[ft.colors.YELLOW, ft.colors.BLUE]
),
style=ft.PaintingStyle.FILL,
),
)

PaintRadialGradient 类具有以下属性:

  • center - Offset 类的实例。渐变的中心点。
  • radius - 渐变的半径。
  • colorsstopstile_moderotation - 详见 线性渐变 中这些属性的描述。
  • focal - 渐变的焦点。如果指定,渐变将看起来沿着从 center 到焦点的矢量聚焦。
  • focal_radius - 渐变焦点的半径,作为绘制框最短边的一部分。例如,如果在宽度为 100.0 像素、高度为 200.0 像素的框上绘制径向渐变,则半径为 1.0 将使 1.0 停止点距离焦点 100.0 像素。

更多信息:

PaintSweepGradient

cv.Path(
[
cv.Path.MoveTo(60, 230),
cv.Path.LineTo(110, 330),
cv.Path.LineTo(10, 330),
cv.Path.Close(),
],
ft.Paint(
gradient=ft.PaintSweepGradient(
(60, 280),
colors=[ft.colors.YELLOW, ft.colors.BLUE],
start_angle=0,
end_angle=math.pi * 2,
),
stroke_width=5,
stroke_join=ft.StrokeJoin.ROUND,
style=ft.PaintingStyle.STROKE,
),
)

PaintSweepGradient 类具有以下属性:

  • center - 渐变的中心。
  • colorsstopstile_moderotation - 详见 线性渐变 中这些属性的描述。
  • start_angle - 渐变停止 0.0 的角度(以弧度为单位)。默认为 0.0。
  • end_angle - 渐变停止 1.

0 的角度(以弧度为单位)。默认为 math.pi * 2。

  • rotation - 渐变的旋转角度(以弧度为单位)。

更多信息:

stroke_cap

style 设置为 PaintingStyle.STROKE 时,在线条绘制结束时放置的类型。

值是 ft.StrokeCap 枚举的实例:

  • BUTT(默认值)- 开始和结束轮廓具有平坦边缘且无扩展。
  • ROUND - 开始和结束轮廓具有半圆形扩展。
  • SQUARE - 开始和结束轮廓具有半方形扩展。这类似于将每个轮廓延伸半个笔触宽度(由 Paint.stroke_width 给出)。

stroke_join

线段之间连接的类型。

这适用于样式设置为 PaintingStyle.STROKE 时绘制的路径,不适用于作为带有 canvas.Points 的线条绘制的点。

默认为 StrokeJoin.MITER,即尖角。

值是 ft.StrokeJoin 枚举的实例:

  • MITER(默认值)- 线段之间的连接形成尖角。
  • ROUND - 线段之间的连接是半圆形的。
  • BEVEL - 线段之间的连接将线段的末端的角连接起来,以呈现斜角外观。

有关详细信息,请参阅 StrokeJoin 枚举

stroke_miter_limit

当连接设置为 StrokeJoin.MITER 且样式设置为 PaintingStyle.STROKE 时,要在段上绘制的斜接的限制。如果超过此限制,则将绘制 StrokeJoin.BEVEL 连接。如果角度线段之间的角度是动画的,则可能会导致路径的角落出现一些 "弹出",如下图所示。

此限制表示斜接的长度限制。

默认为 4.0。使用零作为限制将始终使用 StrokeJoin.BEVEL 连接。

stroke_width

在样式设置为 PaintingStyle.STROKE 时要绘制的边缘的宽度。宽度以垂直于路径方向的逻辑像素为单位。

默认为 0.0,对应于发丝线宽度。

stroke_dash_pattern

圆形阵列,包含划破的偏移量和长度。

例如,数组 [5, 10] 将导致长为 5 像素的短划线,后跟长为 10 像素的空白。数组 [5, 10, 5] 将导致 5 像素的短划线、10 像素的间隔、5 像素的短划线、5 像素的间隔、10 像素的短划线,依此类推。

style

是否在形状内部、形状的边缘或两者都绘制。

值是 ft.PaintingStyle 枚举的实例:

  • FILL(默认值)- 将 Paint 应用于形状的内部。例如,当应用于 canvas.Circle 形状时,结果是绘制给定大小的圆盘。
  • STROKE - 将 Paint 应用于形状的边缘。例如,当应用于 canvas.Circle 形状时,结果是绘制给定大小的环。绘制在边缘的线条宽度由 Paint.stroke_width 属性给出。