-
Notifications
You must be signed in to change notification settings - Fork 0
View
alekay2200 edited this page Sep 16, 2022
·
3 revisions
En el módulo view/abstract_view.py se encuentra la clase abstracta View en la que se deben basar todas las vistas.
Las vistas contienen la lista de iconos que forman parte de ella. Estas controlan cuando deben actualizarse redibujando los iconos.
Identificador único de la vista.
Pantalla a la que está asociada la vista.
Conjunto de señales que puede recibir.
Función para controlar las señales que recibe la vista.
Redibuja los iconos que necesiten actualizarse.
Devuelve la pantalla que tiene asignada
Devuelve el identificador de la vista
Devuelve el conjunto de señales que puede recibir.
from icon.battery import Battery
from icon.wifi import Wifi
from view.abstract_view import View
from display.abstract_display import Display
from icon.text import Text
from constants.signals import SIG_CLOCK
class Home_View(View):
def __init__(self, display: Display):
signals = {SIG_CLOCK}
super().__init__(1, display, signals)
clock_time = self.__get_time()
self._icons.append(Text(self, (57, 68), clock_time, self._display.get_fonts().FONT4, self._display.get_colors().WHITE, self._display.get_colors().BLACK))
self._icons.append(Battery(self, (10, 10), (60, 25)))
self._icons.append(Wifi(self, (self._display.get_width() - 20, 5), (self.get_display().get_width() - 10, 25)))
def __get_time(self) -> str:
datetime = self._display.get_sys_manager().get_localtime()
hour = str(datetime[3])
minutes = str(datetime[4])
seconds = str(datetime[5])
if len(hour) < 2: hour = "0" + hour
if len(minutes) < 2: minutes = "0" + minutes
if len(seconds) < 2: seconds = "0" + seconds
return f"{hour}:{minutes}:{seconds}"
def arrive_signal(self, signal):
if signal == SIG_CLOCK:
self._icons[0].set_text(self.__get_time())