一、首先创建需要响应的OBJ以lvgl开关obj为例 lv_obj_t * sw; sw = lv_switch_create(lv_scr_act());二、给其添加事件首先定义回调函数 static void event_handler(lv_event_t * e) { lv_event_code_t code = lv_e…
LV_IMG_DECLARE(mouse_cursor_icon) lv_obj_t * cursor_obj = lv_img_create(lv_scr_act()); lv_img_set_src(cursor_obj, &mouse_cursor_icon); lv_indev_set_cursor(mouse_indev, cursor_obj); //创建一个按钮 btn = lv_btn_create(lv_scr...
并且,显示的屏幕就会变成当前的活动屏幕,可以通过lv_scr_act来获取。 也就是说,如果是隐藏和显示标志,就需要先后调用lv_obj_add_flag和lv_obj_clear_flag来实现切换,如果不隐藏,会对新显示的页面有影响;但是使用lv_scr_load来加载一个屏幕,则不用先隐藏之前的屏幕,因为同一时间只会有一个活动屏幕。这种情况下,...
lv_obj_invalidate(lv_scr_act());能重绘屏幕,亲测有效,还得是GPT牛逼,百度了全网都没找到
如果要创建更灵活的布局,可以使用lv_obj_create()创建一个基本对象。这种直接创建的基本对象一般用作框架,然后通过嵌套框架的形式组织对齐,例如: /* outer widget align */lv_obj_t* cont_top =lv_obj_create(lv_scr_act());lv_obj_t* cont_bottom =lv_obj_create(lv_scr_act());lv_obj_align(cont...
#if LV_USE_BAR void lv_ex_bar_1(void) { lv_obj_t * bar1 = lv_bar_create(lv_scr_act(), NULL); lv_obj_set_size(bar1, 200, 20); lv_obj_align(bar1, NULL, LV_ALIGN_CENTER, 0, 0); lv_bar_set_anim_time(bar1, 2000); ...
contanier1= lv_obj_create(lv_scr_act()); lv_obj_set_size(contanier1,320,240);//设置容器大小 lv_obj_set_style_radius(contanier1,0,0);//设置容器圆角为直角 contanier2= lv_obj_create(lv_scr_act()); lv_obj_set_size(contanier2,320,240); lv_obj_set_style_radius(contanier2,0,...
lv_obj_t * scr1 = lv_obj_create(NULL, NULL); 可以使用任何对象类型创建屏幕。例如:创建墙纸的基础对象或图像。 获取活动屏幕 这始终是每个显示屏上的活动屏幕。默认情况下,该库为每个显示创建并加载 “基础对象” 作为屏幕。 要获取当前活动的屏幕使用函数 lv_scr_act() ...
调用lv_init()。 初始化驱动程序 初始化显示驱动和输入设备驱动程序。 设置一个定时器,每隔n(1-10)毫秒调用lv_tick_inc(n)以告知lvgl经过时间,该线程需要高于第五步的优先级。 主程序中每隔数毫秒(5ms)调用lv_timer_handler()处理LVGL界面(绘制显示界面,读取输入设备信息,展示动画等)。
cd lv_sim_visual_studio git submodule update --init –recursive 先单独下载模拟器主项目,再切换到模拟器项目目录,使用模块拉取命令下载,这样,即使用失败了,可以通过反复尝试,可以将模块代码拉取回来。 模拟器使用 模块器项目代码成功拉取后,使用VS2019或VS2022成功打开即可运行。