PointMode
Inherits: Enum
Properties
-
LINES–Draw each sequence of two points as a line segment. If the number of points is odd, then the last point is ignored. The lines are stroked as described by the
Paint(ignoringPaint.style). -
POINTS–Draw each point separately. If the
Paint.stroke_capisStrokeCap.ROUND, then each point is drawn as a circle with the diameter of thePaint.stroke_width, filled as described by thePaint(ignoringPaint.style). Otherwise, each point is drawn as an axis-aligned square with sides of lengthPaint.stroke_width, filled as described by thePaint(ignoringPaint.style). -
POLYGON–Draw the entire sequence of point as one line. The lines are stroked as described by the
Paint(ignoringPaint.style).
Examples#
Showcase#
import flet as ft
import flet.canvas as cv
POINTS = [
(25, 75),
(70, 30),
(115, 75),
(160, 30),
(205, 75),
]
def showcase_card(mode: cv.PointMode) -> ft.Container:
return ft.Container(
width=320,
padding=12,
border=ft.Border.all(1, ft.Colors.RED),
border_radius=10,
bgcolor=ft.Colors.SURFACE_CONTAINER_LOW,
content=ft.Column(
spacing=8,
controls=[
ft.Text(mode.name, weight=ft.FontWeight.BOLD),
cv.Canvas(
width=240,
height=110,
shapes=[
cv.Points(
points=POINTS,
point_mode=mode,
paint=ft.Paint(
color=ft.Colors.PRIMARY,
stroke_width=12,
stroke_cap=ft.StrokeCap.ROUND,
),
)
],
),
],
),
)
def main(page: ft.Page):
page.theme_mode = ft.ThemeMode.DARK
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
page.appbar = ft.AppBar(title="PointMode Showcase")
page.add(
ft.Text(
"Compare how the same coordinate list is interpreted by each point mode."
),
ft.Row(
wrap=True,
spacing=12,
expand=True,
scroll=ft.ScrollMode.AUTO,
alignment=ft.MainAxisAlignment.CENTER,
controls=[showcase_card(mode) for mode in cv.PointMode],
),
)
ft.run(main)
Properties#
LINES = 'lines'
class-attribute
instance-attribute
#
Draw each sequence of two points as a line segment. If the number of points is odd, then the last point is ignored. The lines are stroked as described by the Paint (ignoring Paint.style).
POINTS = 'points'
class-attribute
instance-attribute
#
Draw each point separately. If the Paint.stroke_cap is StrokeCap.ROUND, then each point is drawn as a circle with the diameter of the Paint.stroke_width, filled as described by the Paint (ignoring Paint.style). Otherwise, each point is drawn as an axis-aligned square with sides of length Paint.stroke_width, filled as described by the Paint (ignoring Paint.style).
POLYGON = 'polygon'
class-attribute
instance-attribute
#
Draw the entire sequence of point as one line. The lines are stroked as described by the Paint (ignoring Paint.style).