LVGL lv_obj基础对象(4)

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);
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值