自 v5.2 以来发生了什么?#
LVGL 集成#
LVGL 的生态系统通过重要的平台集成得到了显著扩展:
社区和网站更新#
- 博客 - LVGL 的博客已经启动。它是供您分享项目、教程、技巧和窍门的平台。请阅读如何添加您的文章。
- 论坛 - 我们的论坛已经开放。请使用它来提问"如何做"的问题,并在 GitHub 上开启 issue 来讨论开发相关的话题。
- 文档 - 文档已经迁移到一个公共仓库,您可以在那里发送 pull request 来改进它。文档有在线和离线两个版本。
一些统计数据#
- LVGL 越来越受欢迎。根据 GitHub 的统计,LVGL 每 10 分钟就会被克隆一次。(不包括从 lvgl.com 直接下载的次数)
- LVGL 成为 GitHub 的热门趋势仓库。它在跨所有编程语言(不仅仅是 C 语言)比较时,位列前 25 名最受欢迎的仓库之一。
MicroPython 支持#
感谢 @amirgon,您现在可以在 MicroPython(一个用于嵌入式系统的 Python 实现)中使用 LVGL。更多信息请阅读这篇文章。您可以在 Linux 上或使用 ESP32 通过这个即用型仓库来尝试它。
新对象#
- lv_tileview - 用于智能手表风格设计的容器
- lv_spinbox - 使用
+和-按钮或按键设置数值 - lv_table - 创建轻量级表格
- lv_canvas - 绘制到缓冲区并将其显示为图像
新对象特性#
核心对象#
- lv_obj - 添加重新对齐功能(保存最后的
lv_obj_align数据并重新应用) - lv_obj - 添加
lv_obj_align_origo以对齐对象的中心(与重新对齐功能配合使用)
图表#
- lv_chart -
LV_CHART_TYPE_VERTICAL_LINE当点数等于图表宽度时,只绘制垂直线 - lv_chart - 添加
LV_CHART_POINT_DEF特殊值以不绘制点
输入控件#
- lv_sw - 动画移动(
lv_sw_set_anim_time(),lv_sw_on/off_anim()) - lv_btnm - 添加
lv_btnm_get_pressed() - lv_btnm - 添加通过
lv_btnm_set_recolor重新着色的功能 - lv_ta - 支持
LV_GROUP_KEY_BACKSPACE - lv_ddlist - 添加通过
lv_ddlist_set_draw_arrow显示下箭头符号的选项 - lv_ddlist - 添加设置标签对齐方式的能力
列表和可滚动对象#
- lv_list - 记住最后选中的按钮(仅当列表在一个组中时)
- lv_list - 允许单按钮选择模式
- lv_list、lv_ta、lv_page - 滚动传播功能,在"过度滚动"时滚动父级
- lv_list、lv_ta、lv_page - 边缘闪光效果,在"过度滚动"时在边缘显示圆圈
其他控件#
- lv_preload - 添加
lv_preload_set_animation_type()和LV_PRELOAD_TYPE_FILLSPIN_ARC - lv_imgbtn - 添加平铺选项,通过重复中间部分来动态设置宽度
- lv_calendar - 添加
lv_calendar_get_pressed_date - lv_tabview - 添加
lv_tabview_set_hidden以隐藏选项卡按钮
其他新特性#
系统特性#
- lv_lang - 多语言接口,可在运行时更改 UI 的语言
- lv_group - 添加
LV_GROUP_KEY_BACKSPACE - lv_anim - 添加过冲和弹跳路径
- lv_anim - 添加
lv_anim_count_running - lv_indev - 添加
lv_indev_set_feedback以在对象发生某些事件时添加回调函数 - lv_vdb - 添加真双缓冲功能,仅通过帧缓冲区地址交换即可工作
- lv_style - 添加
LV_BORDER_INTERNAL以移除边缘的边框 - lv_porting - 添加显示、输入设备、文件系统的移植骨架函数
v6.0 计划#
下一个主要版本将专注于:
- 多显示屏支持
- 运行时屏幕配置(而非硬编码的宏定义)
- 通用动作处理(
lv_obj将有一个动作) - 更好的 GPU 处理
- 图像旋转
- 更好的国际化支持(i18n)
您可以在这个 issue 中跟踪进度。
