1. `lv_obj_clean(`函数用于清除屏幕上的所有对象,但保留屏幕。 ```c void lv_obj_clean(lv_obj_t* obj); ``` 这个函数接收一个lv_obj_t类型的参数,表示要清除的对象。如果传入NULL,则表示清除整个屏幕上的所有对象。 使用示例: ```c lv_obj_clean(lv_scr_act(); // 清除屏幕上的所有对象 ``...
通过调用lv_obj_clean函数,可以清除特定对象或界面的资源,并释放相关的内存。 3. lv_disp_remove函数,lv_disp_remove函数通常用于关闭显示器。在一些特定的嵌入式系统中,可能需要手动关闭显示器以节省能量或者在特定情况下切换显示模式,lv_disp_remove函数可以实现这样的功能。 需要注意的是,具体的关闭函数的名称和...
如果想要在加载新页面前就把原页面中的内容释放掉,调用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)...
void lv_obj_del(lv_obj_t * obj); lv_obj_del 将立即删除该对象。如果出于某种原因不能立即删除该对象,则可以使用 lv_obj_del_async(obj) ,例如,如果要删除子对象的 LV_EVENT_DELETE 信号中对象的父对象,这很有用。 我们可以使用 lv_obj_clean 删除对象的所有子对象(但不会删除对象本身): void lv_o...
此时,我们可以在切换之前,释放之前屏幕上的内存,注意,用的是函数lv_obj_clean,而不是lv_obj_del,因此并不是删除原来的屏幕。当然,也可以选择删除。 总结上面的内容,得出两种常用的切换页面的方式: 1 所有的页面共用一个活动屏幕,然后一起创建出来,接着用隐藏和显示来切换,此时,页面越多,则内存占用越多; ...
备注:在回调函数中用NULL判断控件是否已建立也不准确,因为如果是静态控件指针在被lv_obj_clean()删除...
最后采用了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_obj_set_style_bg_color(Scr_mainMenu, lv_color_black(), 0); lv_obj_set_size(Scr_mainMenu, LV_HOR_RES, LV_VER_RES); Scr_wifi = lv_obj_create(NULL); lv_obj_clean(Scr_wifi); lv_obj_remove_style_all(Scr_wifi); lv_obj_set_style_bg_opa(Scr_wifi, LV_OPA_COVER, 0);//0...
lv_arduino 添加lv_arduino到工程目录下 TFT_eSPI TFT_eSPI 添加TFT_eSPI到工程目录下 三、配置TFT_eSPI选项 1.首先打开如下路径的配置文件 .pio\libdeps\esp32dev\TFT_eSPI\User_Setup.h 2.更改驱动配置 选择自己屏幕的驱动,并将其他驱动注释 选择显示的RGB顺序,并注释其他RGB顺序(如果不确定可以先选一个,之...