lvgl(LVGL)的代码学习及分析

在上面文章中详细介绍了如何使用VS去运行LVGL,下面我们对其代码进行简单分析。

1 主函数

打开.cpp文件

发现里面运行的函数只有一个,lv_demo_widgets(),接下来打开该函数

2 打开lv_demo_widgets()函数,最主要的函数就是末尾的几个函数

profile_create(t1); analytics_create(t2); shop_create(t3); color_changer_create(tv);

根据运行出来的结果可知,前三个函数分别对应了第一,第二和第三个界面。我们可以对其记性验证,只留下第一个函数 profile_create(t1);其他的都先注释掉。另外把

static void analytics_create(lv_obj_t* parent)

void shop_create(lv_obj_t * parent)

static void color_changer_create(lv_obj_t * parent)

static void color_changer_anim_cb(void * var, int32_t v)

static void color_changer_event_cb(lv_event_t *e)

static void color_event_cb(lv_event_t * e)

static lv_obj_t * create_meter_box(lv_obj_t * parent, const char * title, const char * text1, const char * text2, const char * text3)

static lv_obj_t * create_shop_item(lv_obj_t * parent, const void * img_src, const char * name, const char * category, const char * price)

static void shop_chart_event_cb(lv_event_t * e)

static void meter1_indic1_anim_cb(void * var, int32_t v)

static void meter1_indic2_anim_cb(void * var, int32_t v)

static void meter1_indic3_anim_cb(void * var, int32_t v)

static void meter2_timer_cb(lv_timer_t * timer)

static void meter3_timer_cb(lv_timer_t * timer)

这些函数全部删除并注释掉相关的函数声明,如下图

最终保留的函数如下图

3 再次运行程序,第二个和第三个界面中的内容已经没有了。可以开始精读其中的程序,并且可以按照自己的想法添加控件,实现功能。

经验分享 程序员 微信小程序 职场和发展