改进内容#
通用事件#
在 v5.3 中,您只能为少数几种对象类型(如按钮)添加操作。在 v6.0 中,您可以使用事件为任何对象类型添加操作。
使用 lv_obj_set_event_cb(obj, event_handler) 为对象设置事件回调函数。在 event_handler 中,您将获得调用对象和事件,如 LV_EVENT_CLICKED/PRESSED/VALUE_CHANGED 等。
在事件文档中了解更多信息。
更好的字体#
创建了一个新的字体转换器,支持字偶距和其他一些功能。它是用 Node.js 编写的,因此应该很容易离线使用。
您可以选择更多字体和范围,将它们包含在最终字体文件中。
多屏幕支持#
在 v6.0 中,您可以拥有多个显示屏,每个显示屏都有自己的驱动程序和对象。
要了解有关多屏幕支持的更多信息,请访问显示文档。
MicroPython#
为了流畅地支持 MicroPython,进行了大量改进。了解更多关于 MicroPython 与 LittlevGL 的信息。
新论坛#
这并不算是 LittlevGL 的功能特性,但它与 v6.0 同时发布。我们推出了一个新的、更现代的论坛:https://forum.littlevgl.com
您可以轻松使用 GitHub 或 Google 账户登录。
旧论坛将迁移到 http://forumold.littlevgl.com
从 v5.3 迁移到 v6.0#
v6.0 与 v5.3 不完全兼容,因为发生了一些 API 和概念上的更改。
最重要的事项#
- 从
lv_conf_template.h更新您的lv_conf.h - 使用新的转换器重新生成您的字体:https://littlevgl.com/ttf-font-to-c-array
- 阅读新文档:https://docs.littlevgl.com
操作与事件#
- 使用
lv_obj_set_event_cb(obj, callback)代替lv_btn_set_action(btn, LV_BTN_ACTION_..., callback)。事件回调函数用于处理所有以前的操作(即长按、释放由单个函数处理)。 - 对象现在会自动检测它们是否已被删除,无需在您的
lv_event_cb_t中返回LV_RES_OK/LV_RES_INV。因此,lv_event_cb_t函数返回void。
驱动程序级别#
- 驱动程序函数签名现在接受一个初始的第一个参数,即驱动程序对象本身。这使您的驱动程序函数可以使用多个物理设备,而无需编写两个单独的驱动程序。
- (即
indev回调函数现在接受初始的第一个参数lv_indev_t *) disp_flush现在是flush_cb。它不再直接接受 x/y 坐标,而是接受一个包含 x1、y1、x2、y2 字段的lv_area_t参数mem_fill(在 v6.0 中称为gpu_fill_cb)填充区域而不是线条- 动态可变的显示配置。不再在
lv_conf.h中硬编码。 - 需要显式初始化您的显示缓冲区并将其添加到显示驱动程序。它替代了 v5.3 中的 VDB。因此 v6.0 中没有
LV_VDB_SIZE,但您应该使用这些显示缓冲区。 LV_HOR_RES和LV_VER_RES被替换为LV_HOR_RES_MAX和LV_VER_RES_MAX,它们分别定义显示屏的最大水平和垂直分辨率。LV_HOR_RES和LV_VER_RES仍然有效,但始终反映最后创建的显示屏的分辨率。(只有一个显示屏时没有区别)。
重命名#
- 所有宏,如
USE_LV_BTN,现在都像LV_USE_BTN一样。 - 重命名符号:
SYMBOL_HOME→LV_SYMBOL_HOME - 重命名
LV_GROUP_KEY_...为LV_KEY_... - 多个小的函数 API 更改。几乎所有功能仍然存在,因此您应该能找到每个 v5.3 函数,但可能名称或用法略有不同
动画#
lv_anim_t中的重命名。ready_cb获取lv_anim_t *作为参数。- 添加了
lv_anim_set_...(&a)函数来替代lv_anim_t的手动初始化 lv_style_anim_t已删除。使用lv_anim_t a;和lv_style_anim_set_...(&a, ...)代替。
对象和样式#
lv_obj_get_free_ptr和lv_obj_get_free_num被lv_obj_get_user_data替代。用户数据的类型可以在lv_conf.h中更改- 所有内边距和适配都是左、右、上、下,而不是水平和垂直。
- lv_canvas:使用
lv_draw_...函数
字体#
- 字体系统已更新,现在支持字偶距。您可以使用新转换器重新生成字体。
- 使用新的在线字体转换器生成新字体
- 内置字体已更改
其他#
- 用户数据现在也可用于其他一些结构,如驱动程序对象。
lv_task的回调函数现在接收指向任务本身的指针,而不是用户数据。用户数据可以作为task->user_data访问img_decoder得到改进,可以缓存打开的图像。因此,例如 PNG 图像不会一直解码,而是保持打开状态。在图像文档中了解更多信息
致谢#
- @embeddedt 不懈地支持用户并在开发中提供专业帮助
- @amirgon 创建并维护 MicroPython 绑定
- @puzrin 创建新的字体转换器
以及每一位通过拉取请求、想法和建议、测试和反馈提供帮助的贡献者——
非常感谢你们所有人!
