引言
LVGL 编程思想
LVGL 采用的是面向对象的编程思想,以抽象的类来实例化不同的对象(部件)
举例

实现流程
C 语言中没有“类”的概念,LVGL 以结构体的形式来实现“类”的思想。
过程:
- 使用
lv_obj_t结构体实例化一个具体的对象:lv_obj(基础对象),默认就是以当前活动的屏幕作为基础对象。- 这个基础对象作为父对象衍生出更多的子对象:
lv_switch、lv_lable、lv_slider...这些部件。- 父对象衍生出这些子对象后,子对象就会继承很多父对象的属性以及行为,后面就可以用一套同意的 api 函数对这些属性和行为进行管理。

void my_gui(void)
{lv_obj_t* switch1 = lv_switch_create(lv_scr_act()); // 创建一个在当前活动屏幕作为父对象的子对象开关switch1lv_obj_set_size(switch_obj, 120, 60); // 设置开关部件大小lv_obj_t* switch2 = lv_switch_create(switch1); // 可以选择活动屏幕或者前面的switch1来继承,若选择了switch2则与switch2只有命令关系,与活动屏幕才是父子关系
}
现象:

父子对象规律
- 用一个父对象创建出一个子对象时,父对象就是子对象的容器,子对象装在父对象中。
- 用一个父对象创建出一个子对象时,子对象默认创建在父对象的左上角。
基础对象简介
基础对象(lv_obj)可以作为父对象,来创建其他对象,同时也可以作为部件使用。

举例
void my_gui(void)
{lv_obj_t* obj1 = lv_obj_create(lv_scr_act());lv_obj_set_size(obj1, 300, 400);
}
现象:

父对象和子对象的关系
博客导航
博客导航