Hi from Germany,
I’m very new to programming, so please remember that
I’m working on lvgl solutions for my TFT display. ISo far, so good. Works so far, but I cannot get symbols shown on buttons.
lvgl:
color_depth: 16
update_interval: 100ms
buffer_size: 10%
displays: my_display
touchscreens: my_touchscreen
pages:
- id: home_page
widgets:
- label:
text: "Touch Timer"
text_font: font_48
align: CENTER
y: -40
- button:
id: go_timer_btn
align: CENTER
width: 160
height: 80
on_click:
then:
- lambda: |-
ESP_LOGI("ui", "Go Timer tapped");
- lvgl.page.show:
id: timer_page
animation: FADE_IN
widgets:
- label:
text: "\uE425"
text_font: font_symbols
align: CENTER
- button:
id: settings_btn
align: CENTER
y: 80
width: 160
height: 80
on_click:
then:
- lambda: |-
ESP_LOGI("ui", "Settings tapped");
- lvgl.page.show:
id: settings_page
animation: FADE_IN
widgets:
- label:
text: "\uE8B8"
text_font: font_symbols
align: CENTER
- id: timer_page
widgets:
- label:
text: "Shot Timer"
text_font: font_36
text_color: my_green
align: TOP_MID
y: 10
- label:
id: timer_display
text: !lambda |-
return str_sprintf("%02d:%02d", id(timer_seconds)/60, id(timer_seconds)%60);
text_font: font_48
text_color: my_red
align: CENTER
y: -20
- button:
id: start_btn
align: BOTTOM_LEFT
x: 20
y: -20
width: 80
height: 60
on_click:
then:
- lambda: |-
ESP_LOGI("timer", "Start/Stop tapped");
id(timer_active) = !id(timer_active);
if (id(timer_active)) id(timer_seconds)=25;
- lvgl.label.update:
id: start_btn_label
text: !lambda |-
return std::string(id(timer_active)? "\uE034" : "\uE037");
widgets:
- label:
id: start_btn_label
text: "\uE037"
text_font: font_symbols
align: CENTER
- button:
id: reset_btn
align: BOTTOM_RIGHT
x: -20
y: -20
width: 80
height: 60
on_click:
then:
- lambda: |-
ESP_LOGI("timer", "Reset tapped");
id(timer_active)=false; id(timer_seconds)=25;
- lvgl.label.update:
id: timer_display
text: !lambda |-
return str_sprintf("%02d:%02d", id(timer_seconds)/60, id(timer_seconds)%60);
- lvgl.label.update:
id: start_btn_label
text: "\uE037"
widgets:
- label:
text: "\uE5D5"
text_font: font_symbols
align: CENTER
- button:
id: back_btn
align: BOTTOM_MID
y: -20
width: 60
height: 50
on_click:
then:
- lambda: |-
ESP_LOGI("ui", "Back tapped");
- lvgl.page.show:
id: home_page
animation: FADE_OUT
widgets:
- label:
text: "\uE5C4"
text_font: font_symbols
align: CENTER
- id: settings_page
widgets:
- label:
text: "Settings"
text_font: font_36
align: TOP_MID
y: 10
- button:
id: back_settings_btn
align: BOTTOM_MID
y: -20
width: 60
height: 50
on_click:
then:
- lambda: |-
ESP_LOGI("ui", "Back from settings tapped");
- lvgl.page.show:
id: home_page
animation: FADE_OUT
widgets:
- label:
text: "\uE5C4"
text_font: font_symbols
align: CENTER
interval:
- interval: 1s
then:
- if:
condition:
lambda: 'return id(timer_active);'
then:
- lambda: |-
id(timer_seconds)--;
if (id(timer_seconds) <= 0) { id(timer_active)=false; id(timer_seconds)=0; }
- lvgl.label.update:
id: timer_display
text: !lambda |-
return str_sprintf("%02d:%02d", id(timer_seconds)/60, id(timer_seconds)%60);
- lvgl.label.update:
id: start_btn_label
text: !lambda |-
return std::string(id(timer_active)? "\uE034" : "\uE037");
Can you see a reason why the symbols are not there, just a box. Tried different fonts, but nothing helped. I know, a lot changed in the last few weeks, but I thought, I followed the rules.
Thanks for help
Karl-Heinz Fink