Skip to content
alekay2200 edited this page Sep 15, 2022 · 2 revisions

Resumen

En el módulo icon/abstract_icon.py se encuentra la clase abstracta Icon en la que se deben basar todos los iconos. Los iconos son elementos dinámicos que se muestran en las pantallas.

Cuentan con una caché que puede usarse para almacenar valores anteriores del icono y decidir si redibujarse o no.

Icon(view: View, p1, p2)

Al crear un nuevo icono, se le debe pasar la referencia a la vista sobre la que está asociado y los puntos p1 y p2 (tuplas (x,y)) que representan la esquina superior izquierda y la esquina inferior derecha del rectangulo que ocupan.

update()

Redibuja el icono.

clean(color: Color):

Borra el icono de la pantalla dibujando un rectangulo del color dado sobre este.

Ejemplo de icono concreto.

from display.abstract_display import Colors, Fonts
from icon.abstract_icon import Icon
from view.abstract_view import View

class Text(Icon):

    def __init__(self, view: View, p1, text: str, font: Fonts, text_color: Colors, background_color: Colors):
        (char_width, char_height) = font[1]
        super().__init__(view, p1, (p1[0] + (char_width * len(text)), p1[1] + char_height))
        self.__text = text
        self.__font = font
        self.__text_color = text_color
        self.__background_color = background_color

    def set_text(self, text: str):
        self.__text = text
        (char_width, char_height) = self.__font[1]
        self._p2 = (self._p1[0] + (char_width * len(text)), self._p1[1] + char_height)
        self.update()

    def update(self):
        self._view.get_display().print_text(self.__text, self._p1[0], self._p1[1], self.__font, self.__text_color, self.__background_color)

Clone this wiki locally