.. raw:: html

English \| 中文 \| Português do Brasil \| 日本語 .. raw:: html

.. raw:: html

.. raw:: html

.. raw:: html

Light and Versatile Graphics Library .. raw:: html

.. raw:: html

轻量级通用型图形库 .. raw:: html

.. raw:: html

官网 \| 文档 \| 论坛 \| 示例 \| 服务 \| SquareLine Studio .. raw:: html

`中文宣传单 <./flyers/LVGL-Chinese-Flyer.pdf>`__ 目录 ^^^^ - `概况与总览 <#概况与总览>`__ - `特性 <#特性>`__ - `硬件要求 <#硬件要求>`__ - `已经支持的平台 <#已经支持的平台>`__ - `如何入门 <#如何入门>`__ - `例程 <#例程>`__ - `C <#c>`__ - `Micropython <#micropython>`__ - `服务 <#服务>`__ - `如何向社区贡献 <#如何向社区贡献>`__ 概况与总览 ---------- 特性 ~~~~ - 丰富且强大的模块化\ `图形组件 `__\ :按钮 (buttons)、图表 (charts)、列表 (lists)、滑动条 (sliders)、图片 (images) 等 - 高级的图形引擎:动画、抗锯齿、透明度、平滑滚动、图层混合等效果 - 支持多种\ `输入设备 `__\ :触摸屏、 键盘、编码器、按键等 - 支持\ `多显示设备 `__ - 不依赖特定的硬件平台,可以在任何显示屏上运行 - 配置可裁剪(最低资源占用:64 kB Flash,16 kB RAM) - 基于UTF-8的多语种支持,例如中文、日文、韩文、阿拉伯文等 - 可以通过\ `类CSS `__\ 的方式来设计、布局图形界面(例如:\ `Flexbox `__\ 、\ `Grid `__\ ) - 支持操作系统、外置内存、以及硬件加速(LVGL已内建支持STM32 DMA2D、SWM341 DMA2D、NXP PXP和VGLite) - 即便仅有\ `单缓冲区(frame buffer) `__\ 的情况下,也可保证渲染如丝般顺滑 - 全部由C编写完成,并支持C++调用 - 支持Micropython编程,参见:\ `LVGL API in Micropython `__ - 支持\ `模拟器 `__\ 仿真,可以无硬件依托进行开发 - 丰富详实的\ `例程 `__ - 详尽的\ `文档 `__\ 以及API参考手册,可线上查阅或可下载为PDF格式 硬件要求 ~~~~~~~~ .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html .. raw:: html
要求 .. raw:: html 最低要求 .. raw:: html 建议要求 .. raw:: html
架构 .. raw:: html 16、32、64位微控制器或微处理器 .. raw:: html
时钟 .. raw:: html > 16 MHz .. raw:: html > 48 MHz .. raw:: html
Flash/ROM .. raw:: html > 64 kB .. raw:: html > 180 kB .. raw:: html
Static RAM .. raw:: html > 16 kB .. raw:: html > 48 kB .. raw:: html
Draw buffer .. raw:: html > 1 × hor. res. pixels .. raw:: html > 1/10屏幕大小 .. raw:: html
编译器 .. raw:: html C99或更新 .. raw:: html
*注意:资源占用情况与具体硬件平台、编译器等因素有关,上表中仅给出参考值* 已经支持的平台 ~~~~~~~~~~~~~~ LVGL本身并不依赖特定的硬件平台,任何满足LVGL硬件配置要求的微控制器均可运行LVGL。 如下仅列举其中一部分: - NXP: Kinetis, LPC, iMX, iMX RT - STM32F1, STM32F3, STM32F4, STM32F7, STM32L4, STM32L5, STM32H7 - Microchip dsPIC33, PIC24, PIC32MX, PIC32MZ - `Linux frame buffer `__ (/dev/fb) - `Raspberry Pi `__ - `Espressif ESP32 `__ - `Infineon Aurix `__ - Nordic NRF52 Bluetooth modules - Quectel modems - `SYNWIT SWM341 `__ LVGL也支持: - `Arduino library `__ - `PlatformIO package `__ - `Zephyr library `__ - `ESP32 component `__ - `NXP MCUXpresso component `__ - `NuttX library `__ - `RT-Thread RTOS `__ 如何入门 -------- 请按照如下顺序来学习LVGL: 1. 使用\ `网页在线例程 `__\ 来体验LVGL(3分钟) 2. 阅读文档\ `简介 `__\ 章节来初步了解LVGL(5分钟) 3. 再来阅读一下文档快速\ `快速概览 `__\ 章节来了解LVGL的基本知识(15分钟) 4. 学习如何使用\ `模拟器 `__\ 来在电脑上仿真LVGL(10分钟) 5. 试着动手实践一些\ `例程 `__ 6. 参考\ `移植指南 `__\ 尝试将LVGL移植到一块开发板上,LVGL也已经提供了一些移植好的\ `工程 `__ 7. 仔细阅读文档\ `总览 `__\ 章节来更加深入的了解和熟悉LVGL(2-3小时) 8. 浏览文档\ `组件(Widgets) `__\ 章节来了解如何使用它们 9. 如果你有问题可以到LVGL\ `论坛 `__\ 提问 10. 阅读文档\ `如何向社区贡献 `__\ 章节来看看你能帮LVGL社区做些什么,以促进LVGL软件质量的不断提高(15分钟) 例程 ---- 更多例程请参见 `examples `__ 文件夹。 .. figure:: https://github.com/lvgl/lvgl/raw/master/docs/misc/btn_example.png :alt: LVGL button with label example LVGL button with label example C ~ .. code:: c lv_obj_t * btn = lv_btn_create(lv_scr_act()); /*Add a button to the current screen*/ lv_obj_set_pos(btn, 10, 10); /*Set its position*/ lv_obj_set_size(btn, 100, 50); /*Set its size*/ lv_obj_add_event(btn, btn_event_cb, LV_EVENT_CLICKED, NULL); /*Assign a callback to the button*/ lv_obj_t * label = lv_label_create(btn); /*Add a label to the button*/ lv_label_set_text(label, "Button"); /*Set the labels text*/ lv_obj_center(label); /*Align the label to the center*/ ... void btn_event_cb(lv_event_t * e) { printf("Clicked\n"); } Micropython ~~~~~~~~~~~ 更多信息请到 `Micropython官网 `__ 查询. .. code:: python def btn_event_cb(e): print("Clicked") # Create a Button and a Label btn = lv.btn(lv.scr_act()) btn.set_pos(10, 10) btn.set_size(100, 50) btn.add_event(btn_event_cb, lv.EVENT.CLICKED, None) label = lv.label(btn) label.set_text("Button") label.center() 服务 ---- LVGL 责任有限公司成立的目的是为了给用户使用LVGL图形库提供额外的技术支持,我们致力于提供以下服务: - 图形设计 - UI设计 - 技术咨询以及技术支持 更多信息请参见 https://lvgl.io/services ,如果有任何问题请随时联系我们。 如何向社区贡献 -------------- LVGL是一个开源项目,非常欢迎您参与到社区贡献当中。您有很多种方式来为提高LVGL贡献您的一份力量,包括但不限于: - 介绍你基于LVGL设计的作品或项目 - 写一些例程 - 修改以及完善文档 - 修复bug 请参见文档\ `如何向社区贡献 `__\ 章节来获取更多信息。