自学内容网 自学内容网

LVGL加载器,led和列表学习(基于正点原子)

加载器部件(lv_spinner)

        加载器部件常用于提示当前任务正在加载。

加载器部件组成部分:

主体(LV_PART_MAIN)

指示器(LV_PART_INDICATOR)

手柄(LV_PART_KNOB)

知识点1:创建加载器部件

lv_obj_t   *spinner  = lv_spinner_create( parent, spin_time, arc_length );

知识点2:设置圆弧颜色

lv_obj_set_style_arc_color( spinner, lv_color_hex(0x4a9f00), LV_PART_MAIN );        /* 设置主体圆弧颜色 */

lv_obj_set_style_arc_color( spinner, lv_color_hex(0x83bd55), LV_PART_INDICATOR );   /* 设置指示器圆弧颜色 */

知识点3:设置圆弧宽度

lv_obj_set_style_arc_width( spinner, 30, LV_PART_MAIN );                        /* 设置主体圆弧宽度 */ lv_obj_set_style_arc_width( spinner, 30, LV_PART_INDICATOR );                    /* 设置指示器圆弧宽度 */

LED部件(lv_led)

        LED部件常用于指示控制对象的状态。

主体(LV_PART_MAIN)

注意,不同版本的lvgl的led的显示不太一致。

知识点1:创建LED部件

lv_obj_t   *led = lv_led_create( parent );

知识点2:设置LED颜色、亮度

lv_led_set_color( led, lv_color_hex(0xff0000) );               /* 设置LED颜色 */

lv_led_set_brightness( led, 0 );                        /* 设置LED亮度,范围0~255*/

知识点3:设置LED状态

lv_led_on( led );                                    /* 打开LED(设置亮度为255)*/

lv_led_off( led );                                    /* 关闭LED */ lv_led_toggle( led );                            /* 翻转LED状态 */

列表部件(lv_list)

        列表部件常用于多选一的场景,默认会展现多个选项。

列表部件组成部分:

        主体(LV_PART_MAIN)

        滚动条(LV_PART_SCROLLBAR)

知识点1:创建列表部件

lv_obj_t   *list = lv_list_create( parent );

知识点2:添加列表文本

lv_list_add_text( list, “Settings" );

知识点3:添加列表按钮

lv_obj_t  *btn= lv_list_add_btn( list, LV_SYMBOL_WIFI, “WLAN");

知识点4:获取列表按钮文本

lv_list_get_btn_text( list, list_btn );

这里说一下例程两个关键函数:

 lv_obj_update_layout(obj_left);                                                 /* 手动更新物体(obj_left)的参数 */

这个函数用于更新obj的参数,以便后面获取: lv_obj_set_height(obj_right,lv_obj_get_height(obj_left));                      /* 设置高度 */

        这里就用到了obj_left,注意的是lvgl的参数不是实时更新的,如果要用到获取widgets参数,就要先调用更新物体参数,不然获取到0,就会发生错误。

static void list_btn_event_cb(lv_event_t *e)
{
    lv_obj_t *list_btn = lv_event_get_target(e);                                   /* 获取触发源 */

    lv_label_set_text(list_label, lv_list_get_btn_text(list, list_btn));           /* 获取按钮文本并显示 */
    
    lv_obj_add_state(list_btn, LV_STATE_FOCUS_KEY);                                /* 添加状态(聚焦) */
}

        这个回调函数,lv_event_get_target(e),获取触发源 ,另一个lv_event_get_code(e)是获取触发类型:长按,点击等等。第二个函数是获取列表的按钮的文本并且显示在右边的列表框内。第三个函数是添加聚焦状态,就是你选中这个选项后,会有选中的特效,比如选中那一栏底色设置为蓝色。


原文地址:https://blog.csdn.net/weixin_43408345/article/details/144033069

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!