micropython-nano-gui/extras/demos/calendar.py

49 wiersze
1.3 KiB
Python

from color_setup import ssd
from time import sleep
from gui.core.writer import CWriter
from gui.core.nanogui import refresh
import gui.fonts.font10 as font
from gui.core.colors import *
from extras.widgets.calendar import Calendar
from gui.widgets.label import Label
epaper = hasattr(ssd, "wait_until_ready")
def test():
wri = CWriter(ssd, font, verbose=False)
wri.set_clip(True, True, False) # Clip to screen, no wrap
refresh(ssd, True) # Clear screen and initialise GUI
lbl = Label(wri, 200, 5, 300, bdcolor=RED)
# Invert today. On ePper also invert current date.
cal = Calendar(wri, 10, 10, 35, GREEN, BLACK, RED, CYAN, BLUE, True, epaper)
lbl.value("Show today's date.")
refresh(ssd) # With ePaper should issue wait_until_ready()
sleep(5) # but we're waiting 5 seconds anyway, which is long enough
date = cal.date
lbl.value("Adding one month")
date.month += 1
refresh(ssd)
sleep(5)
lbl.value("Adding one day")
date.day += 1
refresh(ssd)
sleep(5)
date.now() # Today
for n in range(13):
lbl.value(f"Go to {n + 1} weeks of 13 after today")
date.day += 7
refresh(ssd)
sleep(5)
lbl.value("Back to today")
date.now() # Back to today
refresh(ssd)
sleep(5)
try:
test()
finally:
if epaper:
ssd.sleep()