LVGL|将lvgl工程从lvgl v7升级到lvgl v8版本(lvgl版本升级)
Posted 挨踢民工biubiu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVGL|将lvgl工程从lvgl v7升级到lvgl v8版本(lvgl版本升级)相关的知识,希望对你有一定的参考价值。
文章目录
LVGL系列教程文章列表
- LVGL|lvgl v8.x教程(lvgl中文文档教程,开始更新lvgl v8.x文档教程,超详细!)
- LVGL|将lvgl工程从lvgl v7升级到lvgl v8版本
- LVGL|基于lvgl实现2048游戏(纯c语言实现)
- freeRTOS&LVGL|在使用freertos时如何为lvgl配置心跳和任务管理器
- Raspberry pi pico|树莓派-pico驱动ILI9341+lvgl(c语言实现)
- LVGL|基于100ASK_STM32_F103ZET6开发板的lvgl(v7.11.0)综合例程
- 将lvlg v8.0移植到STM32F103开发板教程(TODO)
- 将lvlg v8.0移植到 IMX6ULL 开发板教程(TODO)
- 将lvlg v8.0移植到 STM32MP157 开发板教程(TODO)
lvgl v8 更新说明
v8.0 带来了许多新功能,例如简化且更强大的滚动、受 CSS Flexbox 和 Grid 启发的新布局、简化和改进的小部件、更强大的事件、可挂钩绘图等。
v8 是一个重大变化,因此它不向后兼容 v7。
目录结构的变化
- 从文件夹名称中删除了
lv_
前缀 docs
被移动到lvgl
存储库examples
被移动到lvgl
存储库- 为复杂的小部件创建一个
src/extra
文件夹:- 它使核心 LVGL 更精简
- 在
extra
中,我们可以有很多特定的小部件 - 贡献的好地方
部件(widget)的更改
- 删除了
lv_cont
,布局功能移到了lv_obj
- 删除了
lv_page
,滚动功能移到了lv_obj
lv_objmask
同样可以通过事件来实现- 添加了
lv_meter
作为lv_linemeter
和lv_gauge
的联合 lv_span
新小部件模仿 html<span>
lv_animing
用于简单幻灯片动画的新小部件- + 许多小的变化和改进
新的滚动功能
- 滚动时支持“弹性”滚动
- 支持任何对象类型之间的滚动链接(不仅是
lv_pages
s) - 删除
lv_drag
。 类似的效果可以通过在LV_EVENT_PRESSING
中设置位置来实现 - 添加捕捉
- 添加捕捉停止以滚动最多 1 个捕捉点
新的布局
- CSS Grid 类似布局支持
- CSS Flexbox 类似布局支持
样式更新
- 优化和简化样式
- 状态保存在对象中而不是样式属性中
- 对象大小和位置也可以在样式中设置
事件更新
- 允许向一个对象添加多个事件
- 一个
user_data
可以附加到添加的事件
驱动程序的更改
lv_disp_drv_t
、lv_indev_drv_t
、lv_fs_drv_t
需要是static
...disp_buf...
重命名为draw_buf
。 请参阅[此处](https://github.com/lvgl/lv_sim_eclipse_sdl/blob/release/v8.0/main.c#L128-L141)的初始化示例。- 如果设置了两个屏幕大小的缓冲区,则不会进行部分更新
disp_drv->full_refresh = 1
总是使整个显示重绘。hor_res
和ver_res
需要在disp_drv
中设置indev_read_cb
返回void
。 表示在 read_cb 中还有更多要读取的 setdata->continue_reading = 1
其他变化
- 从创建函数中删除复制参数
- 简化的文件系统接口 API
- 使用更通用的继承
- 重新设计了内置主题
lv_obj_align
现在保存对齐并自动重新对齐对象,但不能用于对齐到父对象以外的对象lv_obj_align_to
可以对齐到一个对象,但不保存对齐lv_pct(x)
可用于以百分比设置大小和位置- 小部件中还有许多其他更改,此处未详细说明。 请参阅小部件的文档。
新的发布政策
- 我们将遵循使用 GitLab 流程发布分支
- 预计每 3-4 个月发布一次小版本
master
将始终包含最新的更改
从 v7 升级到 v8
- 首先,基于v8的
lv_conf_template.h
创建一个新的lv_conf.h
。 - 要尝试新版本,建议使用模拟器项目并查看示例。
- 将项目迁移到 v8 时
参考修改
样式
有的简化了函数名,有的简化了函数参数。
lvgl v7 | lvgl v8 |
---|---|
lv_obj_set_style_local_bg_color() | lv_obj_set_style_bg_color() |
lv_style_set_bg_color(lv_style_t *style,lv_state_t state,uint8_t value) | lv_style_set_bg_color(lv_style_t *style,uint8_t value) |
创建控件
v8中不能复制父类的样式了。
lvgl v7 | lvgl v8 |
---|---|
lv_label_create(lv_obj_t *parent,lv_obj_t *cope) | lv_label_create(lv_obj_t *parent) |
对齐
v8中没有与父类对齐的概念,直接与屏幕对齐即可。
lvgl v7 | lvgl v8 |
---|---|
lv_obj_align(lv_obj_t *obj,lv_obj_t *parent,…) | lv_obj_align(lv_obj_t *obj,…) |
其他修改
其他部分主要是小的重命名和重构。 有关说明,参阅相关函数的文档。
以上是关于LVGL|将lvgl工程从lvgl v7升级到lvgl v8版本(lvgl版本升级)的主要内容,如果未能解决你的问题,请参考以下文章