1 lv_obj的作用
obj 即 对象,也是LittlevGL中构成各种容器、页面、控件最基本的元素,就是说GUI中的各种元素都是在obj的基础上增加扩展功能或修改样式而来的。
2 效果
使用lv_obj_create
创建一个基本的空对象并将其作为屏幕,其父级与样式复制都为NULL
效果:
3 实现过程
在 lv_obj.c 中可以看到,如果没有为对象设置父级,则会创建一个新的双向链表,并为双向链表申请内存空间,然后再定义这个对象的在屏幕上的尺寸的大小,同时也会获取当前设置的全局主题。
以及对一些属性的初始化设置
如果在创建对象的时候设置了父级,则会以父级对象结构体中预设的一个用于子对象创建头结点的指针来创建一个双向链表
如果样式复制的参数不为空的话,则会直接将被复制的对象的参数直接赋值给新建的这个对象
如果要删除一个对象,可以使用lv_obj_del
函数,删除过程是通过以下代码实现的,可以看到对象的数据被标记为无效,然后再删除了其链表中的内容
标记对象数据为无效的过程如下,标为无效后在下一次刷新时,此对象的将被刷新掉