Flet: Badge e Canvas

Controle Badge

O controle Badge (um distintivo ou emblema) é uma marca posta acima de outro controle, usada ​​para mostrar notificações, contagens ou informações de status sobre o aplicativo. O controle que recebe um Badge é normalmente um ícone, parte de um NavigationBar ou um destino de NavigationRail, ou um ícone de botão. O controle tem a propriedade text onde as informações podem ser exibidas. Se text é fornecido, o rótulo será um emblema em forma de StadiumBorder com altura large_size. Se nenhum texto for fornecido, o emblema será exibido como um círculo preenchido de diâmetro small_size.

Propriedades de Badge

As seguintes propriedades existem no controle Badge:

Propriedade Descrição
alignment alinhamento do label em relação ao conteúdo do controle. Este valor só é usado se a propriedade text for especificada. Por exemplo: badge.alignment = ft.alignment.top_left. O valor é do tipo Alignment.
bgcolor cor de fundo do label.
content um controle filho contido pelo Badge, normalmente um ícone parte de um destino de NavigationBar ou NavigationRail. O valor é do tipo Control.
label_visible booleano, default True. Se label_visible=False, o Badge não é exibido.
large_size altura do Badge se nenhum text for fornecido. O valor é do tipo OptionalNumber com default 16.
offset combinado com o alinhamento para determinar a localização do Badge. Só tem efeito se text for fornecido. O valor é do tipo OffsetValue.
padding preenchimento aplicado ao label. Esse valor só é usado se text for fornecido. O padrão é 4 pixels à esquerda e à direita. O valor é do tipo PaddingValue.
small_size O diâmetro do label se o text não for fornecido. O valor é do tipo OptionalNumber com default 6.
text texto mostrado no label, normalmente de 1 a 4 caracteres. Se o text for fornecido, o label terá a forma de StadiumBorder com altura igual a large_size. Se não for fornecido, o emblema será exibido como um disco diâmetro small_size. O valor é do tipo string.
text_color cor do texto no label. Substitui a cor especificada em text_style.
text_style estilo usado para texto em label. O valor é do tipo TextStyle.

Você pode ver um exemplo de uso do controle Bagde.

Controle Canvas

O controle Canvas serve para que sejam desenhados gráficos arbitrários, usando um conjunto de formas primitivas como line, arc, path e text, respectivamente linha, arco, caminho, e texto.

Propriedades do Canvas

As seguintes propriedades estão definidas do controle Canvas:

Propriedade Descrição
resize_interval intervalo de amostragem (em milissegundos) para coleta do evento on_resize. O default é 0 (on_resize ocorre imediatamente após a alteração).
shapes lista de objetos Shape (listados abaixo) a serem desenhados no canvas.

Evento do Canvas

O seguinte evento pode ser acionado no Canvas:

Evento Descrição
on_resize dispara quando o tamanho do canvas é alterado. O objeto de evento e é uma instância de CanvasResizeEvent.

Propriedades das Formas (Shapes)

Nesse contexto chamamos as Shapes de formas, Path de caminhos, as partes de um caminho de subcaminhos.

As formas básicas (Shapes) usadas pelo Canvas são: Arc, Circle, Color, Fill, Line, Oval, Path, Points, Rect, Shadow, Text, respectivamente: Arco, círculo, cor, preenchimento, linha, oval, caminho, ponto, retângulo, sombra, texto.

Propriedades de Arc

Um Arc é o elemento que desenha um arco dimensionado para caber dentro do retângulo disponível. O arco vai no sentido horário de start_angle até start_angle + sweep_angle (em radianos, com zero mostrado na figura 2). Se use_center=True, o arco é fechado de volta ao centro. Caso contrário, o arco fica aberto.

Figura 2

Uso: canvas.Arc(x, y, width, height, start_angle, sweep_angle, use_center, paint)

height altura do retângulo que contém o arco.
paint estilo de desenho do arco. O valor é uma instância da classe Paint.
start_angle ângulo inicial (em radianos) no desenho do arco. Veja figura.
sweep_angle acréscimo sobre o ângulo inicial (em radianos) no desenho do arco. Veja figura.
use_center se use_center=True o arco será fechado de volta ao centro. Caso contrário, o arco fica aberto.
width largura do retângulo que contém o arco.
x, y coordenadas (x,y) do ponto superior esquerdo do arco.
Propriedades de Circle

Um Circle desenha um círculo dentro do canvas.
Uso: canvas.Circle(x,y,radius, paint)

paint estilo de desenho do círculo. O valor é instância da classe Paint.
radius raio do círculo.
x, y coordenadas do centro do círculo.
Propriedades de Color

Color pinta uma cor na tela, usando o blend_mode fornecido. A cor fornecida é a origem e o fundo o destino.
Uso: canvas.Color(color, blend_mode)

blend_mode modo de mesclagem a ser aplicado. O valor é do tipo BlendMode.
color cor usada para pintar a tela.
Propriedades de Fill

Um Fill preenche a tela com o Paint dado (definido abaixo). Para preencher a tela com cor sólida e modo de mesclagem, considere usar forma Color.
Uso: canvas.Fill(paint)

paint estilo de preenchimento da tela. O valor é instância da classe Paint.
Propriedades de Line

Line desenha uma linha entre os pontos dados usando paint. A linha é traçada e o valor do Paint.style é ignorado.
Uso: canvas.Line(x1, y1, x2, y2, paint)

paint estilo de desenho da linha. O valor é instância da classe Paint.
x1, y1 coordenadas (x, y) do ponto inicial da linha.
x2, y2 coordenadas (x, y) do ponto final da linha.
Propriedades de Oval

Oval desenha uma figura oval (uma elipse) usando o Paint dado. A oval pode ser preenchida ou traçada (ou ambos), o que é controlado por Paint.style.

Uso: canvas.Oval(x, y, width, height, paint)

height altura do retângulo contendo a oval.
paint estilo para desenhar uma oval. O valor é instância da classe Paint.
width largura do retângulo contendo a oval.
x, y coordenadas (x, y) do ponto superior esquerdo da oval.
Propriedades de Path

Path desenha um caminho com elementos fornecidos por Paint. A forma pode ser preenchida ou traçada (ou ambos), e isso é controlado por Paint.style. Se Path for preenchido, os subcaminhos serão implicitamente fechados (veja Path.Close).
Uso: canvas.Path(elements, paint)

elements lista de elementos do caminho. Os elementos possíveis estão listados abaixo.
paint estilo para desenhar o caminho. O valor é instância da classe Paint.
Elementos de Path

A tabela abaixo lista os possíveis elementos de Path:

Path.MoveTo(x, y) inicia um novo subcaminho no ponto (x,y).
Path.LineTo(x, y) adiciona um segmento de reta do ponto atual ao ponto (x,y) dado.
Path.QuadraticTo(cp1x, cp2y, x, y, w) adiciona um segmento bezier do ponto atual até (x,y) dado, usando os pontos de controle (cp1x,cp1y). O peso w define o tipo de curva: se w> 1, hipérbole; w = 1, parábola; w < 1, elipse.
Path.CubicTo(cp1x, cp1y, cp2x, cp2y, x, y) adiciona um segmento cúbico bezier do ponto atual para (x,y), usando os pontos de controle (cp1x,cp1y) e (cp2x,cp2y).
Path.SubPath(elements, x, y) adiciona subcaminho descrito por elements até (x,y).
Path.Arc(x, y, width, height, start_angle, sweep_angle) adiciona subcaminho com um segmento de arco que segue a borda do oval delimitado por um retângulo. O retângulo tem canto superior esquerdo em (x, y) e dimensões width e height. O arco vai de start_angle radianos até start_angle + sweep_angle, crescendo no sentido horário.
Path.ArcTo(x, y, radius, rotation, large_arc, clockwise) adiciona até quatro curvas cônicas ponderadas. radius é o raio; rotation a rotação dos eixos (em graus e sentido horário). A primeira curva começa no ponto atual, e a última termina em (x, y). O sentido do arco é definido por clockwise e large_arc. clockwise=True é sentido horário e o ângulo de varredura é sempre menor que 360 ​​graus. Uma linha simples é acrescentada se radius=0.
Path.Oval(x, y, width, height) adiciona um novo subcaminho que consiste em uma curva que forma a elipse que preenche o retângulo fornecido.
Path.Rect(x, y, width, height, border_radius) adiciona um retângulo como um novo subcaminho.
Path.Close fecha o último subcaminho, ligando o ponto atual até o primeiro ponto do subcaminho.

Nota: †: Uma curva de Bezier é uma curva parametrizada que representa a interpolação linear entre os chamados pontos de controle. Normalmente, ela tem como objetivo aproximar uma forma que não tem representação matemática explícita ou com representação desconhecida ou complicada. Ela é usada principalmente em aplicações gráficas computadorizadas.

Figura 3: curva de Bezier
Propriedades de Points

Points é o elemento que desenha uma sequência de pontos de acordo com o point_mode dado.

paint estilo para desenhar pontos. O valor é instância da classe Paint.
points lista de ft.Offset descrevendo pontos.
point_mode define como a lista de pontos é interpretada ao desenhar um conjunto de pontos. O valor é do tipo PointMode.
Propriedades de Rect

Rect desenha um retângulo.

Uso: canvas.Rect(x, y, width, height, border_radius, paint)

border_radius raio da borda do retângulo. O valor é do tipo BorderRadius.
height altura do retângulo.
paint estilo para desenhar o retângulo. O valor é a instância da classe Paint.
width largura do retângulo.
x, y coordenadas (x,y) do ponto superior esquerdo do retângulo.
Propriedades de Shadow

Desenha uma sombra sob um caminho, representada com uma elevação elevation.

Uso: canvas.Shadow(color, elevation, path, transparent_occluder)

color cor da sombra.
elevation elevação da sombra.
path lista de objetos Path.PathElement que descrevem o caminho.
transparent_occluder True se o objeto oclusivo não for opaco. Default é False.
Propriedades de Text

Text renderiza elemento de texto com style dado no ponto (x, y).

Uso: canvas.Text(x, y, text, alignment, rotate)

alignment ponto dentro de um retângulo de texto que define sua posição e centro de rotação. O valor é do tipo Alignment e o default é align.top_left.
ellipsis String que define elipsis (três pontos: ) usados em texto maiores que o espaço disponível.
max_lines número máximo de linhas exibidas. Além desse número as linhas são silenciosamente descartadas. Ex.: se max_lines = 1, só uma linha é renderizada. Se max_lines = None e ellipsis != None as linhas que seguem a primeira a ultrapassar as restrições de largura são descartadas.
max_width largura máxima do texto renderizado. Default None (infinito).
rotate rotação do texto em radianos, em torno do ponto determinado pelo alinhamento.
spans lista de objetos TextSpan para criar um parágrafo de rich text.
style estilo de texto para rederizar text e spans. O valor é instância da classe TextStyle.
text texto a ser exibido.
text_align alinhamento horizontal do texto. O valor é do tipo TextAlign com default TextAlign.LEFT.
x, y coordenadas (x,y) do ponto de alinhamento do texto.

Leave a Reply

Your email address will not be published. Required fields are marked *