v5.0.0 版本现已发布,带来了更加简化的架构设计。现在图形库仅包含 lvgl 仓库本身。除了架构变更外,本版本还新增了 Unicode 支持、样式主题以及新的智能手机风格对象类型。为了让开发者更容易上手,我们在 lv_examples 仓库中发布了配套教程。
破坏性变更
请注意,这是一个主要版本更新,与之前版本不向后兼容。强烈建议阅读文档中的基础部分以了解新特性。
架构变更#
- 将 misc 集成到 lvgl 中
- 将 hal 集成到 lvgl 中
- 将应用程序转换为简单示例
- 将仓库从 proj_pc 重命名为 pc_simulator
- 为示例创建新的独立仓库 (lv_examples)
- 为开发板创建新的独立仓库 (lv_boards)
- 为驱动程序创建新的独立仓库 (lv_drivers)
系统级变更#
- 对象类型继承被隐藏。每个对象都有自己的 API(除了
lv_obj_set/get_...函数) - 重构
lv_style_t使其更加通用 - 重命名(并略微重构)部分函数、定义和枚举,使其更具描述性
- 将样式设为全局变量,减少代码量
- 将字体设为全局变量,减少代码量并方便添加用户自定义字体
- 将符号字体合并到普通内置字体中(使用普通字体时,lvgl 会自动查找符号字体)
- 将
lv_dispi_...重命名为lv_indev_... - 简化动作函数:
lv_res_t action (lv_obj_t * obj)- 如需要可使用lv_indev_act()
新特性#
- 支持 Unicode,提供 UTF-8 解码
- 带有预定义样式的主题系统
- lv_tabview:新增对象类型,使用选项卡组织内容
- lv_sw:新增对象类型,开关控件,通过点击切换开/关(小型滑块)
- lv_roller:新增对象类型,用于选择数值的滚轮控件(类似智能手机)
- lv_kb:新增对象类型,键盘
- lv_btnm:
lv_btnm_set_toggle()可切换最后一个按钮 - lv_btnm:重构宽度控制。现在使用控制字节来设置宽度、隐藏和禁用长按
- lv_ta:光标类型
- lv_gauge:重构以使其更像线性仪表(移除背景但添加刻度线)
- 样式中支持部分边框绘制
- 隐藏抗锯齿放大(不再需要
x * LV_DOWNSCALE)
错误修复#
通过 lv_tests,我们修复了大量错误。
