commit fba20c88db704c89e649d1fbc6d4ec7bdba03a97 Author: Dairse Date: Thu Oct 16 21:39:25 2025 +0300 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..723ef36 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.idea \ No newline at end of file diff --git a/components/header.py b/components/header.py new file mode 100644 index 0000000..141d573 --- /dev/null +++ b/components/header.py @@ -0,0 +1,66 @@ +import lvgl as lv + +def header_create(parent, title, name): + # Создаём и инициализируем стили + if not hasattr(header_create, "style_inited"): + header_create.style_inited = True + + header_create.main = lv.style_t() + header_create.main.init() + header_create.main.set_bg_color(lv.color_hex(0x191919)) + header_create.main.set_border_width(2) + header_create.main.set_border_side(lv.border_side.BOTTOM) + header_create.main.set_border_color(lv.color_hex(0xff1717)) + header_create.main.set_radius(0) + header_create.main.set_width(lv.pct(100)) + header_create.main.set_height(105) + header_create.main.set_pad_hor(12) + header_create.main.set_layout(lv.LAYOUT_FLEX) + header_create.main.set_flex_cross_place(lv.FLEX_ALIGN.CENTER) + header_create.main.set_flex_track_place(lv.FLEX_ALIGN.CENTER) + header_create.main.set_flex_flow(lv.FLEX_FLOW.ROW) + header_create.main.set_text_color(lv.color_hex(0xffffff)) + + header_create.greenColor = lv.style_t() + header_create.greenColor.init() + header_create.greenColor.set_text_color(lv.color_hex(0x57f42c)) + + header_create.grayColor = lv.style_t() + header_create.grayColor.init() + header_create.grayColor.set_text_color(lv.color_hex(0xd5d5d5)) + + # Основной контейнер + lv_obj_0 = lv.obj(parent) + lv_obj_0.clear_flag(lv.obj.FLAG.SCROLLABLE) + lv_obj_0.add_style(header_create.main, 0) + + # Левая колонка + column_0 = column_create(lv_obj_0) + column_0.add_style(header_create.greenColor, 0) + + subtitle_0 = subtitle_create(column_0, title, "Subtitle") + subtitle_0.add_style(header_create.greenColor, 0) + + subtitle_1 = subtitle_create(column_0, name, "Subtitle") + subtitle_1.add_style(header_create.grayColor, 0) + + # Правая часть — время и иконка + row_0 = row_create(lv_obj_0) + row_0.set_width(lv.pct(93)) + row_0.set_style_flex_main_place(lv.FLEX_ALIGN.END, 0) + row_0.set_style_text_color(lv.color_hex(0xffffff), 0) + row_0.set_style_pad_column(0, 0) + + subtitle_2 = subtitle_create(row_0, "Subtitle", "Subtitle") + lv.label_bind_text(subtitle_2, hours, None) + + subtitle_3 = subtitle_create(row_0, ":", "Subtitle") + + subtitle_4 = subtitle_create(row_0, "Subtitle", "Subtitle") + lv.label_bind_text(subtitle_4, mins, None) + + icon_0 = icon_create(row_0) + + lv_obj_0.set_name("header_#") + + return lv_obj_0 diff --git a/main.py b/main.py new file mode 100644 index 0000000..c7d28ac --- /dev/null +++ b/main.py @@ -0,0 +1,40 @@ +from micropython import const # NOQA +import lcd_bus # NOQA + + +_WIDTH = const(480) +_HEIGHT = const(320) + +bus = lcd_bus.SDLBus(flags=0) + +buf1 = bus.allocate_framebuffer(_WIDTH * _HEIGHT * 3, 0) + +import lvgl as lv # NOQA +import sdl_display # NOQA + + +display = sdl_display.SDLDisplay( + data_bus=bus, + display_width=_WIDTH, + display_height=_HEIGHT, + frame_buffer1=buf1, + color_space=lv.COLOR_FORMAT.RGB888 +) +display.init() + +import sdl_pointer +import task_handler + +mouse = sdl_pointer.SDLPointer() + +# the duration needs to be set to 5 to have a good response from the mouse. +# There is a thread that runs that facilitates double buffering. +th = task_handler.TaskHandler(duration=5) + +scrn = lv.screen_active() +scrn.set_style_bg_color(lv.color_hex(0x000000), 0) + +slider = lv.slider(scrn) +slider.set_size(300, 25) +slider.center() +input() \ No newline at end of file