Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
.devcontainer/ | 18-Mar-2025 | - | 365 | 316 | ||
.github/ | 18-Mar-2025 | - | 996 | 853 | ||
demos/ | 18-Mar-2025 | - | 803,059 | 784,101 | ||
docs/ | 18-Mar-2025 | - | 37,149 | 25,752 | ||
env_support/ | 18-Mar-2025 | - | 6,186 | 4,332 | ||
examples/ | 18-Mar-2025 | - | 32,495 | 26,698 | ||
libs/nema_gfx/ | 18-Mar-2025 | - | 5,057 | 1,226 | ||
scripts/ | 18-Mar-2025 | - | 7,070 | 5,417 | ||
src/ | 18-Mar-2025 | - | 472,608 | 354,773 | ||
tests/ | 18-Mar-2025 | - | 71,768 | 61,594 | ||
xmls/ | 18-Mar-2025 | - | 856 | 692 | ||
zephyr/ | 18-Mar-2025 | - | 10 | 7 | ||
.gitignore | D | 18-Mar-2025 | 451 | 34 | 33 | |
.pre-commit-config.yaml | D | 18-Mar-2025 | 1.2 KiB | 43 | 37 | |
.typos.toml | D | 18-Mar-2025 | 659 | 30 | 27 | |
CMakeLists.txt | D | 18-Mar-2025 | 1.5 KiB | 41 | 35 | |
CMakePresets.json | D | 18-Mar-2025 | 2.8 KiB | 117 | 116 | |
Kconfig | D | 18-Mar-2025 | 57 KiB | 2,070 | 1,768 | |
LICENCE.txt | D | 18-Mar-2025 | 1 KiB | 9 | 5 | |
README.md | D | 18-Mar-2025 | 22.7 KiB | 469 | 354 | |
SConscript | D | 18-Mar-2025 | 192 | 12 | 7 | |
component.mk | D | 18-Mar-2025 | 2.4 KiB | 67 | 62 | |
idf_component.yml | D | 18-Mar-2025 | 204 | 5 | 5 | |
library.json | D | 18-Mar-2025 | 529 | 18 | 17 | |
library.properties | D | 18-Mar-2025 | 394 | 11 | 10 | |
lv_conf_template.h | D | 18-Mar-2025 | 43.9 KiB | 1,307 | 539 | |
lv_version.h | D | 18-Mar-2025 | 257 | 15 | 7 | |
lv_version.h.in | D | 18-Mar-2025 | 325 | 15 | 11 | |
lvgl.h | D | 18-Mar-2025 | 5.2 KiB | 205 | 127 | |
lvgl.mk | D | 18-Mar-2025 | 447 | 13 | 10 | |
lvgl.pc.in | D | 18-Mar-2025 | 251 | 11 | 9 | |
lvgl_private.h | D | 18-Mar-2025 | 4.5 KiB | 128 | 98 |
README.md
1 2<a href="https://github.com/sponsors/lvgl" target="_blank"><img align="left" src="https://lvgl.io/github-assets/sponsor.png" height="32px"></a> 3 4<p align="right"> 5 <b>English</b> | <a href="./docs/README_zh.rst">中文</a> | <a href="./docs/README_pt_BR.rst">Português do Brasil</a> | <a href="./docs/README_jp.rst">日本語</a> 6</p> 7 8<br> 9 10<p align="center"> 11 <img src="https://lvgl.io/github-assets/logo-colored.png" width=300px> 12</p> 13 14 <h1 align="center">Light and Versatile Graphics Library</h1> 15 <br> 16<div align="center"> 17 <img src="https://lvgl.io/github-assets/smartwatch-demo.gif"> 18 19 <img border="1px" src="https://lvgl.io/github-assets/widgets-demo.gif"> 20</div> 21<br> 22<p align="center"> 23<a href="https://lvgl.io" title="Homepage of LVGL">Website </a> | 24<a href="https://docs.lvgl.io/" title="Detailed documentation with 100+ examples">Docs</a> | 25<a href="https://forum.lvgl.io" title="Get help and help others">Forum</a> | 26<a href="https://lvgl.io/demos" title="Demos running in your browser">Demos</a> | 27<a href="https://lvgl.io/services" title="Graphics design, UI implementation and consulting">Services</a> 28</p> 29<br> 30 31## :ledger: Overview 32 33**Mature and Well-known**<br> 34LVGL is the most popular free and open source embedded graphics library to create beautiful UIs for any MCU, MPU and display type. It's supported by industry leading vendors and projects like Arm, STM32, NXP, Espressif, Nuvoton, Arduino, RT-Thread, Zephyr, NuttX, Adafruit and many more. 35 36**Feature Rich**<br> 37It has all the features to create modern and beautiful GUIs: 30+ built-in widgets, a powerful style system, web inspired layout managers, and a typography system supporting many languages. To integrate LVGL into your platform, all you need is at least 32kB RAM and 128 kB Flash, a C compiler, a frame buffer, and at least an 1/10 screen sized buffer for rendering. 38 39**Services**<br> 40Our team is ready to help you with graphics design, UI implementation and consulting services. Contact us if you need some support during the development of your next GUI project. 41 42## :rocket: Features 43 44**Free and Portable** 45 - A fully portable C (C++ compatible) library with no external dependencies. 46 - Can be compiled to any MCU or MPU, with any (RT)OS. 47 - Supports monochrome, ePaper, OLED or TFT displays, or even monitors. [Displays](https://docs.lvgl.io/master/details/main-components/display.html) 48 - Distributed under the MIT license, so you can easily use it in commercial projects too. 49 - Needs only 32kB RAM and 128 kB Flash, a frame buffer, and at least an 1/10 screen sized buffer for rendering. 50 - OS, External memory and GPU are supported but not required. 51 52**Widgets, Styles, Layouts and more** 53 - 30+ built-in [Widgets](https://docs.lvgl.io/master/details/widgets/index.html): Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table and many more. 54 - Flexible [Style system](https://docs.lvgl.io/master/details/base-widget/styles/style.html) with ~100 style properties to customize any part of the widgets in any state. 55 - [Flexbox](https://docs.lvgl.io/master/details/base-widget/layouts/flex.html) and [Grid](https://docs.lvgl.io/master/details/base-widget/layouts/grid.html)-like layouts engines to automatically size and position the widgets in a responsive way. 56 - Texts are rendered with UTF-8 encoding supporting CJK, Thai, Hindi, Arabic, Persian writing systems. 57 - Word wrapping, kerning, text scrolling, sub-pixel rendering, Pinyin-IME Chinese input, Emojis in texts. 58 - Rendering engine supporting animations, anti-aliasing, opacity, smooth scrolling, shadows, image transformation, etc 59 - Supports Mouse, Touchpad, Keypad, Keyboard, External buttons, Encoder [Input devices](https://docs.lvgl.io/master/details/main-components/indev.html). 60 - [Multiple display](https://docs.lvgl.io/master/details/main-components/display.html#how-many-displays-can-lvgl-use) support. 61 62**Binding and Build Support** 63 - [MicroPython Binding](https://blog.lvgl.io/2019-02-20/micropython-bindings) exposes LVGL API 64 - [PikaScript Binding](https://blog.lvgl.io/2022-08-24/pikascript-and-lvgl) python on MCU lighter and easier. 65 - No custom build system is used. You can build LVGL as you build the other files of your project. 66 - Support for Make and [CMake](https://docs.lvgl.io/master/details/integration/building/cmake.html) is included out of the box. 67 - [Develop on PC](https://docs.lvgl.io/master/details/integration/ide/pc-simulator.html) and use the same UI code on embedded hardware. 68 - Convert the C UI code to HTML file with our [Emscripten port](https://github.com/lvgl/lv_web_emscripten). 69 70**Docs, Tools, and Services** 71 - Detailed [Documentation](https://docs.lvgl.io/) with [100+ simple examples](https://docs.lvgl.io/master/examples.html) 72 - [Services](https://lvgl.io/services) such as User interface design, Implementation and Consulting to make UI development simpler and faster. 73 74## :heart: Sponsor 75 76If LVGL saved you a lot of time and money or you just had fun using it, consider [Supporting its Development](https://github.com/sponsors/lvgl). 77 78**How do we spend the donations?**<br> 79Our goal is to provide financial compensation for people who do the most for LVGL. It means not only the maintainers but anyone who implements a great feature should get a payment from the accumulated money. We use the donations to cover our operational costs like servers and related services. 80 81**How to donate?**<br> 82We use [GitHub Sponsors](https://github.com/sponsors/lvgl) where you can easily send one time or recurring donations. You can also see all of our expenses in a transparent way. 83 84**How to get paid for your contribution?**<br> 85If someone implements or fixes an issue labeled as [Sponsored](https://github.com/lvgl/lvgl/labels/Sponsored) he or she will get a payment for that work. We estimate the required time, complexity and importance of the issue and set a price accordingly. To jump in just comment on a [Sponsored](https://github.com/lvgl/lvgl/labels/Sponsored) issue saying "Hi, I'd like to deal with it. This is how I'm planning to fix/implement it...". A work is considered ready when it's approved and merged by a maintainer. After that you can submit and expense at [opencollective.com](https://opencollective.com/lvgl) and you will receive the payment in a few days. 86 87**Organizations supporting LVGL**<br> 88[](https://opencollective.com/lvgl) 89 90**Individuals supporting LVGL**<br> 91[](https://opencollective.com/lvgl) 92 93## :package: Packages 94LVGL is available as: 95- [Arduino library](https://docs.lvgl.io/master/details/integration/framework/arduino.html) 96- [PlatformIO package](https://registry.platformio.org/libraries/lvgl/lvgl) 97- [Zephyr library](https://docs.lvgl.io/master/details/integration/os/zephyr.html) 98- [ESP-IDF(ESP32) component](https://components.espressif.com/components/lvgl/lvgl) 99- [NXP MCUXpresso component](https://www.nxp.com/design/software/embedded-software/lvgl-open-source-graphics-library:LITTLEVGL-OPEN-SOURCE-GRAPHICS-LIBRARY) 100- [NuttX library](https://docs.lvgl.io/master/details/integration/os/nuttx.html) 101- [RT-Thread RTOS](https://docs.lvgl.io/master/details/integration/os/rt-thread.html) 102- CMSIS-Pack 103- [RIOT OS package](https://doc.riot-os.org/group__pkg__lvgl.html#details) 104 105 106## :robot: Examples 107 108See some examples of creating widgets, using layouts and applying styles. You will find C and MicroPython code, and links to try out or edit the examples in an online MicroPython editor. 109 110For more examples check out the [Examples](https://github.com/lvgl/lvgl/tree/master/examples) folder. 111 112 113### Hello world label 114 115 116 117<details> 118 <summary>C code</summary> 119 120```c 121/*Change the active screen's background color*/ 122lv_obj_set_style_bg_color(lv_screen_active(), lv_color_hex(0x003a57), LV_PART_MAIN); 123 124/*Create a white label, set its text and align it to the center*/ 125lv_obj_t * label = lv_label_create(lv_screen_active()); 126lv_label_set_text(label, "Hello world"); 127lv_obj_set_style_text_color(label, lv_color_hex(0xffffff), LV_PART_MAIN); 128lv_obj_align(label, LV_ALIGN_CENTER, 0, 0); 129``` 130</details> 131 132<details> 133 <summary>MicroPython code | <a href="https://sim.lvgl.io/v8.3/micropython/ports/javascript/index.html?script_direct=4ab7c40c35b0dc349aa2f0c3b00938d7d8e8ac9f" target="_blank">Online Simulator</a></summary> 134 135```python 136# Change the active screen's background color 137scr = lv.screen_active() 138scr.set_style_bg_color(lv.color_hex(0x003a57), lv.PART.MAIN) 139 140# Create a white label, set its text and align it to the center 141label = lv.label(lv.screen_active()) 142label.set_text("Hello world") 143label.set_style_text_color(lv.color_hex(0xffffff), lv.PART.MAIN) 144label.align(lv.ALIGN.CENTER, 0, 0) 145``` 146</details> 147<br> 148 149### Button with Click Event 150 151 152 153<details> 154 <summary>C code</summary> 155 156```c 157lv_obj_t * button = lv_button_create(lv_screen_active()); /*Add a button to the current screen*/ 158lv_obj_center(button); /*Set its position*/ 159lv_obj_set_size(button, 100, 50); /*Set its size*/ 160lv_obj_add_event_cb(button, button_event_cb, LV_EVENT_CLICKED, NULL); /*Assign a callback to the button*/ 161 162lv_obj_t * label = lv_label_create(button); /*Add a label to the button*/ 163lv_label_set_text(label, "Button"); /*Set the labels text*/ 164lv_obj_center(label); /*Align the label to the center*/ 165... 166 167void button_event_cb(lv_event_t * e) 168{ 169 printf("Clicked\n"); 170} 171``` 172</details> 173 174<details> 175 <summary>MicroPython code | <a href="https://sim.lvgl.io/v8.3/micropython/ports/javascript/index.html?script_startup=https://raw.githubusercontent.com/lvgl/lvgl/0d9ab4ee0e591aad1970e3c9164fd7c544ecce70/examples/header.py&script=https://raw.githubusercontent.com/lvgl/lvgl/0d9ab4ee0e591aad1970e3c9164fd7c544ecce70/examples/widgets/slider/lv_example_slider_2.py&script_direct=926bde43ec7af0146c486de470c53f11f167491e" target="_blank">Online Simulator</a></summary> 176 177```python 178def button_event_cb(e): 179 print("Clicked") 180 181# Create a Button and a Label 182button = lv.button(lv.screen_active()) 183button.center() 184button.set_size(100, 50) 185button.add_event_cb(button_event_cb, lv.EVENT.CLICKED, None) 186 187label = lv.label(button) 188label.set_text("Button") 189label.center() 190``` 191</details> 192<br> 193 194### Checkboxes with Layout 195 196 197<details> 198 <summary>C code</summary> 199 200```c 201 202lv_obj_set_flex_flow(lv_screen_active(), LV_FLEX_FLOW_COLUMN); 203lv_obj_set_flex_align(lv_screen_active(), LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER); 204 205lv_obj_t * cb; 206cb = lv_checkbox_create(lv_screen_active()); 207lv_checkbox_set_text(cb, "Apple"); 208lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL); 209 210cb = lv_checkbox_create(lv_screen_active()); 211lv_checkbox_set_text(cb, "Banana"); 212lv_obj_add_state(cb, LV_STATE_CHECKED); 213lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL); 214 215cb = lv_checkbox_create(lv_screen_active()); 216lv_checkbox_set_text(cb, "Lemon"); 217lv_obj_add_state(cb, LV_STATE_DISABLED); 218lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL); 219 220cb = lv_checkbox_create(lv_screen_active()); 221lv_obj_add_state(cb, LV_STATE_CHECKED | LV_STATE_DISABLED); 222lv_checkbox_set_text(cb, "Melon\nand a new line"); 223lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL); 224``` 225 226</details> 227 228<details> 229 <summary>MicroPython code | <a href="https://sim.lvgl.io/v8.3/micropython/ports/javascript/index.html?script_startup=https://raw.githubusercontent.com/lvgl/lvgl/0d9ab4ee0e591aad1970e3c9164fd7c544ecce70/examples/header.py&script=https://raw.githubusercontent.com/lvgl/lvgl/0d9ab4ee0e591aad1970e3c9164fd7c544ecce70/examples/widgets/slider/lv_example_slider_2.py&script_direct=311d37e5f70daf1cb0d2cad24c7f72751b5f1792" target="_blank">Online Simulator</a></summary> 230 231```python 232def event_handler(e): 233 code = e.get_code() 234 obj = e.get_target_obj() 235 if code == lv.EVENT.VALUE_CHANGED: 236 txt = obj.get_text() 237 if obj.get_state() & lv.STATE.CHECKED: 238 state = "Checked" 239 else: 240 state = "Unchecked" 241 print(txt + ":" + state) 242 243 244lv.screen_active().set_flex_flow(lv.FLEX_FLOW.COLUMN) 245lv.screen_active().set_flex_align(lv.FLEX_ALIGN.CENTER, lv.FLEX_ALIGN.START, lv.FLEX_ALIGN.CENTER) 246 247cb = lv.checkbox(lv.screen_active()) 248cb.set_text("Apple") 249cb.add_event_cb(event_handler, lv.EVENT.ALL, None) 250 251cb = lv.checkbox(lv.screen_active()) 252cb.set_text("Banana") 253cb.add_state(lv.STATE.CHECKED) 254cb.add_event_cb(event_handler, lv.EVENT.ALL, None) 255 256cb = lv.checkbox(lv.screen_active()) 257cb.set_text("Lemon") 258cb.add_state(lv.STATE.DISABLED) 259cb.add_event_cb(event_handler, lv.EVENT.ALL, None) 260 261cb = lv.checkbox(lv.screen_active()) 262cb.add_state(lv.STATE.CHECKED | lv.STATE.DISABLED) 263cb.set_text("Melon") 264cb.add_event_cb(event_handler, lv.EVENT.ALL, None) 265``` 266 267</details> 268<br> 269 270### Styling a Slider 271 272 273 274<details> 275 <summary>C code</summary> 276 277```c 278lv_obj_t * slider = lv_slider_create(lv_screen_active()); 279lv_slider_set_value(slider, 70, LV_ANIM_OFF); 280lv_obj_set_size(slider, 300, 20); 281lv_obj_center(slider); 282 283/*Add local styles to MAIN part (background rectangle)*/ 284lv_obj_set_style_bg_color(slider, lv_color_hex(0x0F1215), LV_PART_MAIN); 285lv_obj_set_style_bg_opa(slider, 255, LV_PART_MAIN); 286lv_obj_set_style_border_color(slider, lv_color_hex(0x333943), LV_PART_MAIN); 287lv_obj_set_style_border_width(slider, 5, LV_PART_MAIN); 288lv_obj_set_style_pad_all(slider, 5, LV_PART_MAIN); 289 290/*Create a reusable style sheet for the INDICATOR part*/ 291static lv_style_t style_indicator; 292lv_style_init(&style_indicator); 293lv_style_set_bg_color(&style_indicator, lv_color_hex(0x37B9F5)); 294lv_style_set_bg_grad_color(&style_indicator, lv_color_hex(0x1464F0)); 295lv_style_set_bg_grad_dir(&style_indicator, LV_GRAD_DIR_HOR); 296lv_style_set_shadow_color(&style_indicator, lv_color_hex(0x37B9F5)); 297lv_style_set_shadow_width(&style_indicator, 15); 298lv_style_set_shadow_spread(&style_indicator, 5); 2994 300/*Add the style sheet to the slider's INDICATOR part*/ 301lv_obj_add_style(slider, &style_indicator, LV_PART_INDICATOR); 302 303/*Add the same style to the KNOB part too and locally overwrite some properties*/ 304lv_obj_add_style(slider, &style_indicator, LV_PART_KNOB); 305 306lv_obj_set_style_outline_color(slider, lv_color_hex(0x0096FF), LV_PART_KNOB); 307lv_obj_set_style_outline_width(slider, 3, LV_PART_KNOB); 308lv_obj_set_style_outline_pad(slider, -5, LV_PART_KNOB); 309lv_obj_set_style_shadow_spread(slider, 2, LV_PART_KNOB); 310``` 311 312</details> 313 314<details> 315 <summary>MicroPython code | 316<a href="https://sim.lvgl.io/v8.3/micropython/ports/javascript/index.html?script_startup=https://raw.githubusercontent.com/lvgl/lvgl/0d9ab4ee0e591aad1970e3c9164fd7c544ecce70/examples/header.py&script=https://raw.githubusercontent.com/lvgl/lvgl/0d9ab4ee0e591aad1970e3c9164fd7c544ecce70/examples/widgets/slider/lv_example_slider_2.py&script_direct=c431c7b4dfd2cc0dd9c392b74365d5af6ea986f0" target="_blank">Online Simulator</a> 317</summary> 318 319 320```python 321# Create a slider and add the style 322slider = lv.slider(lv.screen_active()) 323slider.set_value(70, lv.ANIM.OFF) 324slider.set_size(300, 20) 325slider.center() 326 327# Add local styles to MAIN part (background rectangle) 328slider.set_style_bg_color(lv.color_hex(0x0F1215), lv.PART.MAIN) 329slider.set_style_bg_opa(255, lv.PART.MAIN) 330slider.set_style_border_color(lv.color_hex(0x333943), lv.PART.MAIN) 331slider.set_style_border_width(5, lv.PART.MAIN) 332slider.set_style_pad_all(5, lv.PART.MAIN) 333 334# Create a reusable style sheet for the INDICATOR part 335style_indicator = lv.style_t() 336style_indicator.init() 337style_indicator.set_bg_color(lv.color_hex(0x37B9F5)) 338style_indicator.set_bg_grad_color(lv.color_hex(0x1464F0)) 339style_indicator.set_bg_grad_dir(lv.GRAD_DIR.HOR) 340style_indicator.set_shadow_color(lv.color_hex(0x37B9F5)) 341style_indicator.set_shadow_width(15) 342style_indicator.set_shadow_spread(5) 343 344# Add the style sheet to the slider's INDICATOR part 345slider.add_style(style_indicator, lv.PART.INDICATOR) 346slider.add_style(style_indicator, lv.PART.KNOB) 347 348# Add the same style to the KNOB part too and locally overwrite some properties 349slider.set_style_outline_color(lv.color_hex(0x0096FF), lv.PART.KNOB) 350slider.set_style_outline_width(3, lv.PART.KNOB) 351slider.set_style_outline_pad(-5, lv.PART.KNOB) 352slider.set_style_shadow_spread(2, lv.PART.KNOB) 353``` 354</details> 355<br> 356 357### English, Hebrew (mixed LTR-RTL) and Chinese texts 358 359 360 361<details> 362 <summary>C code</summary> 363 364```c 365lv_obj_t * ltr_label = lv_label_create(lv_screen_active()); 366lv_label_set_text(ltr_label, "In modern terminology, a microcontroller is similar to a system on a chip (SoC)."); 367lv_obj_set_style_text_font(ltr_label, &lv_font_montserrat_16, 0); 368lv_obj_set_width(ltr_label, 310); 369lv_obj_align(ltr_label, LV_ALIGN_TOP_LEFT, 5, 5); 370 371lv_obj_t * rtl_label = lv_label_create(lv_screen_active()); 372lv_label_set_text(rtl_label,"מעבד, או בשמו המלא יחידת עיבוד מרכזית (באנגלית: CPU - Central Processing Unit)."); 373lv_obj_set_style_base_dir(rtl_label, LV_BASE_DIR_RTL, 0); 374lv_obj_set_style_text_font(rtl_label, &lv_font_dejavu_16_persian_hebrew, 0); 375lv_obj_set_width(rtl_label, 310); 376lv_obj_align(rtl_label, LV_ALIGN_LEFT_MID, 5, 0); 377 378lv_obj_t * cz_label = lv_label_create(lv_screen_active()); 379lv_label_set_text(cz_label, 380 "嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。"); 381lv_obj_set_style_text_font(cz_label, &lv_font_simsun_16_cjk, 0); 382lv_obj_set_width(cz_label, 310); 383lv_obj_align(cz_label, LV_ALIGN_BOTTOM_LEFT, 5, -5); 384``` 385 386</details> 387 388<details> 389 <summary>MicroPython code | <a href="https://sim.lvgl.io/v8.3/micropython/ports/javascript/index.html?script_startup=https://raw.githubusercontent.com/lvgl/lvgl/0d9ab4ee0e591aad1970e3c9164fd7c544ecce70/examples/header.py&script=https://raw.githubusercontent.com/lvgl/lvgl/0d9ab4ee0e591aad1970e3c9164fd7c544ecce70/examples/widgets/slider/lv_example_slider_2.py&script_direct=18bb38200a64e10ead1aa17a65c977fc18131842" target="_blank">Online Simulator</a></summary> 390 391```python 392ltr_label = lv.label(lv.screen_active()) 393ltr_label.set_text("In modern terminology, a microcontroller is similar to a system on a chip (SoC).") 394ltr_label.set_style_text_font(lv.font_montserrat_16, 0); 395 396ltr_label.set_width(310) 397ltr_label.align(lv.ALIGN.TOP_LEFT, 5, 5) 398 399rtl_label = lv.label(lv.screen_active()) 400rtl_label.set_text("מעבד, או בשמו המלא יחידת עיבוד מרכזית (באנגלית: CPU - Central Processing Unit).") 401rtl_label.set_style_base_dir(lv.BASE_DIR.RTL, 0) 402rtl_label.set_style_text_font(lv.font_dejavu_16_persian_hebrew, 0) 403rtl_label.set_width(310) 404rtl_label.align(lv.ALIGN.LEFT_MID, 5, 0) 405 406font_simsun_16_cjk = lv.font_load("S:../../assets/font/lv_font_simsun_16_cjk.fnt") 407 408cz_label = lv.label(lv.screen_active()) 409cz_label.set_style_text_font(font_simsun_16_cjk, 0) 410cz_label.set_text("嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。") 411cz_label.set_width(310) 412cz_label.align(lv.ALIGN.BOTTOM_LEFT, 5, -5) 413 414``` 415</details> 416 417## :arrow_forward: Get started 418This list will guide you to get started with LVGL step-by-step. 419 420**Get Familiar with LVGL** 421 422 1. Check the [Online demos](https://lvgl.io/demos) to see LVGL in action (3 minutes). 423 2. Read the [Introduction](https://docs.lvgl.io/master/intro/index.html) page of the documentation (5 minutes). 424 3. Get familiar with the basics on the [Quick overview](https://docs.lvgl.io/master/intro/basics.html) page (15 minutes). 425 426**Start to Use LVGL** 427 428 4. Set up a [Simulator](https://docs.lvgl.io/master/details/integration/ide/pc-simulator.html#simulator) (10 minutes). 429 5. Try out some [Examples](https://github.com/lvgl/lvgl/tree/master/examples). 430 6. Port LVGL to a board. See the [Porting](https://docs.lvgl.io/master/intro/add-lvgl-to-your-project/index.html) guide or check out the ready-to-use [Projects](https://github.com/lvgl?q=lv_port_). 431 432**Become a Pro** 433 434 7. Read the [Main-Components](https://docs.lvgl.io/master/details/main-components/index.html) page to get a better understanding of the library (2-3 hours) 435 8. Check the documentation of the [Widgets](https://docs.lvgl.io/master/details/widgets/index.html) to see their features and usage 436 437**Get Help and Help Others** 438 439 9. If you have questions go to the [Forum](http://forum.lvgl.io/) 440 10. Read the [Contributing](https://docs.lvgl.io/master/CONTRIBUTING.html) guide to see how you can help to improve LVGL (15 minutes) 441 442 443## :handshake: Services 444LVGL LLC was established to provide a solid background for LVGL library and to offer several type of services to help you in UI development. With 15+ years of experience in the user interface and graphics industry we can help you the bring your UI to the next level. 445 446- **Graphics design** Our in-house graphics designers are experts in creating beautiful modern designs which fit to your product and the resources of your hardware. 447- **UI implementation** We can also implement your UI based on the design you or we have created. You can be sure that we will make the most out of your hardware and LVGL. If a feature or widget is missing from LVGL, don't worry, we will implement it for you. 448- **Consulting and Support** We can support you with consulting as well to avoid pricey and time consuming mistakes during the UI development. 449- **Board certification** For companies who are offering development boards, or production ready kits we do board certification which shows how board can run LVGL. 450 451 452Check out our [Demos](https://lvgl.io/demos) as reference. For more information take look at the [Services page](https://lvgl.io/services). 453 454[Contact us](https://lvgl.io/#contact) and tell how we can help. 455 456 457## :star2: Contributing 458LVGL is an open project and contribution is very welcome. There are many ways to contribute from simply speaking about your project, through writing examples, improving the documentation, fixing bugs or even hosting your own project under the LVGL organization. 459 460For a detailed description of contribution opportunities visit the [Contributing](https://docs.lvgl.io/master/CONTRIBUTING.html) section of the documentation. 461 462More than 300 people already left their fingerprint in LVGL. Be one them! See you here! :slightly_smiling_face: 463 464<a href="https://github.com/lvgl/lvgl/graphs/contributors"> 465 <img src="https://contrib.rocks/image?repo=lvgl/lvgl&max=48" /> 466</a> 467 468... and many other. 469