lv_obj
相关函数在头文件lv_obj.h
lvgl所有专用控件(按钮,标签等)都是在lv_obj基础上再添加特性衍生出来,所以所有的对象都有一些共同的属性,如
所有对象的删除都如下
void lv_obj_del(lv_obj_t * obj);
屏幕对象
创建屏幕对象
lv_obj_t * screen1 = lv_obj_create(NULL, NULL);
获取当前活跃的屏幕对象
static inline lv_obj_t * lv_scr_act(void)
设置为当前活跃的屏幕对象
static inline void lv_scr_load(lv_obj_t * scr)
对象事件类型
typedef uint8_t lv_event_t;
对象事件回调函数
typedef void (*lv_event_cb_t)(struct _lv_obj_t * obj, lv_event_t event);
对象对齐
typedef uint8_t lv_align_t;
对象拖拽
typedef uint8_t lv_drag_dir_t;
例子
void lv_ex_obj_1(void)
{
lv_obj_t * obj1;
obj1 = lv_obj_create(lv_scr_act(), NULL);//创建obj1基础对象,父对象是屏幕,没有copy对象
lv_obj_set_size(obj1, 100, 50);//设置大小
lv_obj_align(obj1, NULL, LV_ALIGN_CENTER, -60, -30);//相对父对象居中再x左偏60,y上偏30
/*Copy the previous object and enable drag*/
lv_obj_t * obj2;
obj2 = lv_obj_create(lv_scr_act(), obj1);//创建obj2基础对象,父对象是屏幕,copy对象是obj1
lv_obj_align(obj2, NULL, LV_ALIGN_CENTER, 0, 0);//相对父对象居中
lv_obj_set_drag(obj2, true);//使能拖拽
static lv_style_t style_shadow;
lv_style_init(&style_shadow);//设置阴影样式
lv_style_set_shadow_width(&style_shadow, LV_STATE_DEFAULT, 10);
lv_style_set_shadow_spread(&style_shadow, LV_STATE_DEFAULT, 5);
lv_style_set_shadow_color(&style_shadow, LV_STATE_DEFAULT, LV_COLOR_BLUE);
/*Copy the previous object (drag is already enabled)*/
lv_obj_t * obj3;
obj3 = lv_obj_create(lv_scr_act(), obj2);
lv_obj_add_style(obj3, LV_OBJ_PART_MAIN, &style_shadow);
lv_obj_align(obj3, NULL, LV_ALIGN_CENTER, 60, 30);
}