From 73de6a2e94378450ff7ceb13d0919ac085fd9925 Mon Sep 17 00:00:00 2001 From: Uli Raich Date: Tue, 8 Aug 2023 10:46:57 +0200 Subject: [PATCH] added Python version of lv_example_tiny_ttf_3 (#4437) --- .../libs/tiny_ttf/lv_example_tiny_ttf_3.py | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 examples/libs/tiny_ttf/lv_example_tiny_ttf_3.py diff --git a/examples/libs/tiny_ttf/lv_example_tiny_ttf_3.py b/examples/libs/tiny_ttf/lv_example_tiny_ttf_3.py new file mode 100644 index 000000000..2691956bf --- /dev/null +++ b/examples/libs/tiny_ttf/lv_example_tiny_ttf_3.py @@ -0,0 +1,65 @@ +from ubuntu_font import ubuntu_font + +DISPLAY_TEXT = "Hello World!" +MSG_NEW_SIZE = 1 + +# +# Change font size with Tiny_TTF +# + +lsize = 25 + +# Define the object that will be sent as msg payload +class NewValue: + def __init__(self, value): + self.value = value + def __repr__(self): + return f"{self.value} %" + +def slider_event_cb(e,label): + + slider = e.get_target_obj() + lsize = slider.get_value() + label.set_text("{:d}".format(lsize)) + lv.msg_send(MSG_NEW_SIZE, NewValue(lsize)) + + +def label_event_cb(e,font): + + label = e.get_target_obj() + m = e.get_msg() + payload = m.get_payload() + v = payload.__cast__() + lv.tiny_ttf_set_size(font, v.value) + label.set_text(DISPLAY_TEXT) + +# Create style with the new font +style = lv.style_t() +style.init() +font = lv.tiny_ttf_create_data(ubuntu_font, len(ubuntu_font),lsize) +style.set_text_font(font) +style.set_text_align(lv.TEXT_ALIGN.CENTER) + +slider = lv.slider(lv.scr_act()) +slider.center() +slider.set_range(5, 50) +slider.set_value(lsize, lv.ANIM.OFF) +slider.align(lv.ALIGN.BOTTOM_MID, 0, -50) + +slider_label = lv.label(lv.scr_act()) +slider_label.set_text("{:d}".format(lsize)) +slider_label.align_to(slider, lv.ALIGN.OUT_BOTTOM_MID, 0, 10) + +slider.add_event(lambda e: slider_event_cb(e,slider_label), lv.EVENT.VALUE_CHANGED, None) + +# Create a label with the new style +label = lv.label(lv.scr_act()) +label.add_style(style, 0) +label.add_event(lambda e: label_event_cb(e,font), lv.EVENT.MSG_RECEIVED, None) +label.set_size(lv.SIZE_CONTENT, lv.SIZE_CONTENT) +label.center() + +lv.msg_subscribe_obj(MSG_NEW_SIZE, label, None) +lv.msg_send(MSG_NEW_SIZE, NewValue(lsize)) + +