如果想要在加载新页面前就把原页面中的内容释放掉,调用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)...
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函数可以实现这样的功能。 需要注意的是,具体的关闭函数的名称和...
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 所有的页面共用一个活动屏幕,然后一起创建出来,接着用隐藏和显示来切换,此时,页面越多,则内存占用越多; ...
lv_obj_clean(lv_obj_t * obj):立即删除一个对象的所有子对象,但不删除对象本身。 lv_obj_del_delayed(lv_obj_t * obj, uint32_t delay_ms):延时指定毫秒数后删除对象。 假设你要删除一个名为my_object的对象,可以使用如下代码: c lv_obj_del(my_object); 3. 验证对象是否已成功删除 在删除对象...
因此,建议在初始化函数中,在所有控件都已经创建好后,再开始调用回调函数。 备注:在回调函数中用NULL判断控件是否已建立也不准确,因为如果是静态控件指针在被lv_obj_clean()删除以后,不一定是NULL。 发布于 2024-07-17 10:09・IP 属地广东 软件调试 lvgl UI 开发...
我们可以通过lv_obj_set_xxx和lv_obj_get_xxxAPI来设置或者获取这些属性。 2.1. 控件大小 只改变宽度: /** * Set the width of an object * @param obj pointer to an object * @param w the new width
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_obj_set_style_bg_color(Scr_wifi, lv_color_black(), 0...
lvgl首先要有对象(obj)的概念,也叫组件(WIDGETS),即按钮,标签,图像,列表,图表或文本区域等等,他们有统一的基本属性: Position (位置) Size (尺寸) Parent (父母) Drag enable (拖动启用) Click enable (单击启用) position (位置) … 我们可以通过lvgl.obj_set_xxx设置对象的xxx属性,通过lvgl.obj_get_xxx来...