lvgl中提供了两个清屏函数,分别是`lv_obj_clean(`和`lv_obj_del(`。这两个函数的作用都是清除屏幕上的所有对象,但有一些细微的区别。 1. `lv_obj_clean(`函数用于清除屏幕上的所有对象,但保留屏幕。 ```c void lv_obj_clean(lv_obj_t* obj); ``` 这个函数接收一个lv_obj_t类型的参数,表示要清除...
2. lv_obj_clean函数,lv_obj_clean函数通常用于关闭特定的对象或界面。通过调用lv_obj_clean函数,可以清除特定对象或界面的资源,并释放相关的内存。 3. lv_disp_remove函数,lv_disp_remove函数通常用于关闭显示器。在一些特定的嵌入式系统中,可能需要手动关闭显示器以节省能量或者在特定情况下切换显示模式,lv_disp...
如果想要在加载新页面前就把原页面中的内容释放掉,调用lv_obj_clean即可。 现在再来分析一下上面代码的共同特征: (1)lv_obj_t * act_scr = lv_scr_act():获取当前屏幕中正在显示的页面的lv_obj_t类型的指针 (2)lv_disp_t * d = lv_obj_get_disp(act_scr);:获取当前屏幕对象关联的显示器对象 (3)...
这种情况下,就算之前的页面没有被删除,也不会影响新的页面。 此时,我们可以在切换之前,释放之前屏幕上的内存,注意,用的是函数lv_obj_clean,而不是lv_obj_del,因此并不是删除原来的屏幕。当然,也可以选择删除。 总结上面的内容,得出两种常用的切换页面的方式: 1 所有的页面共用一个活动屏幕,然后一起创建出来,接...
void lv_obj_clean(lv_obj_t * obj); 屏幕对象 创建屏幕对象 屏幕是没有父对象的特殊对象。应该像这样创建它们: lv_obj_t * scr1 = lv_obj_create(NULL, NULL); 可以使用任何对象类型创建屏幕。例如:创建墙纸的基础对象或图像。 获取活动屏幕
备注:在回调函数中用NULL判断控件是否已建立也不准确,因为如果是静态控件指针在被lv_obj_clean()删除...
init/scr_load/obj_del/obj_clean返回值为null 复现步骤 预期的行为 根据代码中obj_del返回2,其他的也都是返回int。 同时obj_del会导致重启。 截图 参见上图 日志 最小复现工程 直接执行lvgl_init()即可 langzhao创建了任务3年前 fantasy成员3年前
最后采用了lv_obj_clean(lv_obj_t*obj)这个函数会比较方便。 3、修改_ui_screen_change函数 主要就是做一个清除再显示的操作。 首先创建对象,然后获取当前活动的屏幕的对象,之后删除该对象(上面的控件会一起删掉) lv_obj_t * act_scr = lv_scr_act(); ...
lv_obj_t类定义在文件lvgl\src\core\lv_obj.h文件中,定义如下: typedefstruct_lv_obj_t{ constlv_obj_class_t*class_p; struct_lv_obj_t*parent; _lv_obj_spec_attr_t*spec_attr; _lv_obj_style_t*styles; #if LV_USE_USER_DATA ...
lv_arduino 添加lv_arduino到工程目录下 TFT_eSPI TFT_eSPI 添加TFT_eSPI到工程目录下 三、配置TFT_eSPI选项 1.首先打开如下路径的配置文件 .pio\libdeps\esp32dev\TFT_eSPI\User_Setup.h 2.更改驱动配置 选择自己屏幕的驱动,并将其他驱动注释 选择显示的RGB顺序,并注释其他RGB顺序(如果不确定可以先选一个,之...