LVGL入门 常用的几个命令(个人笔记)

前言:学习LVGL的过程中,常常知道有这个命令,也知道大概怎么用。但总想不起来命令叫什么,在整个库中找也显得麻烦,搞得每次写程序还要翻之前的Demo

所以在这里将学习过程中用到的命令 存放在这里,方便再使用的时候方便的找到命令名字。


<!-- 新建obj  父对象是活动的屏幕 -->
lv_obj_t * obj = lv_obj_create(lv_scr_act());

<!-- 设置obj大小 -->
lv_obj_set_size(obj, LV_PCT(50), LV_PCT(10));

<!-- obj对齐 加偏移 -->
lv_obj_align(obj, LV_ALIGN_CENTER, 0, 0);
<!-- obj对齐 -->
lv_obj_set_align(obj,LV_ALIGN_CENTER);
<!-- 与参考物对齐 -->
lv_obj_align_to(label, obj, LV_ALIGN_OUT_BOTTOM_MID, 0, 0);


<!-- 获取obj 参数 -->
lv_obj_get_width(obj);
lv_obj_get_height(obj);

<!-- aline 直接屏幕居中 -->
lv_obj_center(obj);





<!-- 新建 lable -->

lv_obj_t * label = lv_label_create(obj);
<!-- 设置lable text -->
lv_label_set_text(label, "Hello, LVGL!");
<!-- 设置lable text -->
lv_label_set_text_fmt(obj, "%s: %d", "Value", value);






<!-- 新建 switch -->
lv_obj_t * sw = lv_switch_create(lv_scr_act());
<!-- 设置开关状态 -->
lv_obj_add_state(sw, LV_STATE_CHECKED);
<!-- 设置开关状态 且不可更改 -->
lv_obj_add_state(sw, LV_STATE_CHECKED | LV_STATE_DISABLED);
<!-- 清除禁用 -->
lv_obj_clear_state(sw, LV_STATE_ DISABLED);

<!-- 检测是否含有某状态 -->
lv_obj_has_state(sw, LV_STATE_CHECKED)





<!-- 新建checkbox -->
lv_obj_t * cb = lv_checkbox_create(lv_scr_act());
<!-- 设置文字 -->
lv_checkbox_set_text(cb, "100ASK LVGL Tutorial");





<!-- 设置需要响应的事件 -->
lv_obj_add_flag(label, LV_OBJ_FLAG_CLICKABLE);
<!-- 设置obj回调 -->
lv_obj_add_event_cb(label, label_event_cb, LV_EVENT_ALL, 0);


<!-- ===================================分割线====================================== -->

<!-- 直接对obj style设置 -->

<!-- 设置内边框 边框占用按钮内部的地方 -->
lv_obj_set_style_border_width(obj, 10, 0);
<!-- 设置外边框 边框占用按钮外部 -->
lv_obj_set_style_outline_width(obj, 10, 0);

<!-- 使用其他字号的字体,如果不设置默认使用 lv_font_montserrat_14 ,在 lv_conf.h 中 LV_FONT_DEFAULT 定义 -->
lv_obj_set_style_text_font(label, &lv_font_montserrat_28, 0);




<!-- style 单独 设置 -->

<!-- 初始化 style -->
lv_style_init(&style_main);
<!-- 透明度 -->
lv_style_set_bg_opa(&style_main, LV_OPA_COVER);
<!-- 背景颜色 -->
lv_style_set_bg_color(&style_main, lv_color_hex3(0xbbb));
<!-- 倒角 -->
lv_style_set_radius(&style_main, LV_RADIUS_CIRCLE);
<!-- 垂直pad 外垫 -->
lv_style_set_pad_ver(&style_main, -2); /*Makes the indicator larger*/
lv_style_set_pad_hor
lv_style_set_pad_all
lv_style_set_border_width(&style_knob, 2);


<!-- ===================================分割线====================================== -->


<!-- 设置动画过度 -->
一、
    <!-- 要过度的对象, 必须以0结尾 -->
    static const lv_style_prop_t props[] = {LV_STYLE_BG_COLOR, 0};
    <!-- 初始化一个动画 -->
    static lv_style_transition_dsc_t transition_dsc;
    <!-- 动画的结构体 要动画变化的特征 是 LV_STYLE_BG_COLOR -->
    lv_style_transition_dsc_init(&transition_dsc, props, lv_anim_path_linear, 500, 30, NULL);
二、
    <!-- 新建style 一个是未按下用的  一个是按下用的 -->
    static lv_style_t style1;
    static lv_style_t style_pressed_color;
    <!-- 连接style 和 动画过渡 -->
    lv_style_set_transition(&style1, &transition_dsc);
三、
    <!-- 设置obj 未触发时的style 以及 按下时的style -->
    lv_obj_add_style(obj, &style1, LV_PART_KNOB);
    lv_obj_add_style(obj, &style_pressed_color, LV_PART_KNOB | LV_STATE_PRESSED);


<!-- 删除通过本地样式(私有样式)设置的背景色 -->
lv_obj_remove_local_style_prop(obj, LV_STYLE_BG_COLOR, 0);

<!-- ===================================分割线====================================== -->


<!-- 事件冒泡 -->

<!-- 创建obj2、父对象是obj1 -->
lv_obj_t * obj2 = lv_obj_create(obj1);
<!-- 设置 启用冒泡事件 -->
lv_obj_add_flag(obj2, LV_OBJ_FLAG_EVENT_BUBBLE);

<!-- 设置回调 -->

<!-- obj1的回调、回调函数为my_event_cb、事件为LV_EVENT_ALL、需要传递的用户参数为label -->
lv_obj_add_event_cb(obj1, my_event_cb, LV_EVENT_ALL, label);

<!-- 回调函数写法 -->
static void my_event_cb(lv_event_t * e)
{
    <!-- 获取触发事件的对象 -->
    lv_obj_t * obj = lv_event_get_target(e);
    <!-- 获取触发事件对象的父对象(事件冒泡才有) -->
    lv_obj_t * parent = lv_event_get_current_target(e);
    <!-- 获取当前部件触发的事件代码 -->
    lv_event_code_t code = lv_event_get_code(e);
    <!-- 获取添加事件时传递的用户数据 -->
    lv_obj_t * label = lv_event_get_user_data(e);
}

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值