5、LVGL控件-滑轮、滑动条、圆弧

本篇文章目录导航

♠♠ LVGL控件-滑轮、滑动条、圆弧 ♣♣♣♣ 一、LVGL 滑轮部件 ♦♦♦♦♦♦♦♦ 1.1 滑轮部件组成部分 ♦♦♦♦♦♦♦♦ 1.2 滑轮部件基本API ♦♦♦♦♦♦♦♦ 1.3 实验小演示 ♣♣♣♣ 二、LVGL 滑动条部件 ♦♦♦♦♦♦♦♦ 2.1 滑动条部件组成部分 ♦♦♦♦♦♦♦♦ 2.2 滑动条部件基本API ♦♦♦♦♦♦♦♦ 2.3 实验小演示(亮度调节器) ♦♦♦♦♦♦♦♦ 2.4 实验小演示 ♣♣♣♣ 三、LVGL 圆弧部件 ♦♦♦♦♦♦♦♦ 3.1 圆弧部件组成部分 ♦♦♦♦♦♦♦♦ 3.2 圆弧部件基本API ♦♦♦♦♦♦♦♦ 3.3 实验小演示(调节器) ♦♦♦♦♦♦♦♦ 3.4 实验小演示(动态加载) 

 #LVGL控件-滑轮、滑动条、圆弧 ##一、LVGL 滑轮部件 >滚轮部件常用于多选一的场景,它以滚轮的形式来展现多个选项。类似于下拉列表。

效果图:

 

 ###1.1 滑轮部件组成部分 主体LV_PART_MAIN) 选项框LV_PART_SELECTED) 

 ###1.2 滑轮部件基本API 创建滚轮部件:

lv_obj_t *roller = lv_roller_create(parent);

设置选项间隔:

lv_obj_set_style_text_line_space(roller, 30, LV_STATE_DEFAULT);

设置选项内容、滚动模式:

enum{
    LV_ROLLER_MODE_NORMAL,    /* 正常模式 */
    LV_ROLLER_MODE_INFINITE,  /* 无限循环模式,对内存占用较大 */
};

lv_roller_set_options(roller, "a\nb\nc\d", LV_ROLLER_MODE_NORMAL);

设置当前所选项:

lv_roller_set_selected(roller, 3, LV_ANIM_ON);

设置可见行数:

lv_roller_set_visible_row_count(roller, 2);

获取选项内容:

lv_roller_get_selected(roller);                          /* 获取索引 */
 
char buf[10];
lv_roller_get_selected_str(roller, buf, sizeof(buf));    /* 获取选项文本 */

 ###1.3 实验小演示 设计两个滑轮,一个正常模式,一个无限循环模式。

lv_obj_t *roller1, *roller2;

static void event_cb(lv_event_t *e)
{
    lv_event_code_t code = lv_event_get_code(e);    /* 获取触发事件类型 */
    lv_obj_t *obj = lv_event_get_target(e);         /* 获取对象 */

    if(code == LV_EVENT_VALUE_CHANGED)
    {
        char buf[10];
        lv_roller_get_selected_str(obj, buf, sizeof(buf));    /* 获取选项文本 */
        if(obj == roller1)
        {
            printf("The Left Roller:%d %s\n", lv_roller_get_selected(obj), buf);
        }else
        {
            printf("The Right Roller:%d %s\n", lv_roller_get_selected(obj), buf);
        }
    }
}

void my_gui(void)
{
    /**********************第一个滑轮*************************/
    roller1 = lv_roller_create(lv_scr_act());                               /* 创建滑轮部件 */
    lv_obj_align(roller1, LV_ALIGN_CENTER, -150, 0);

    lv_obj_set_style_text_line_space(roller1, 30, LV_STATE_DEFAULT);        /* 设置选项间隔 */
    lv_roller_set_options(roller1, "a\nb\nc\nd", LV_ROLLER_MODE_NORMAL);    /* 设置正常模式 */
    lv_roller_set_selected(roller1, 0, LV_ANIM_ON);                         /* 设置当前所选项 */
    lv_roller_set_visible_row_count(roller1, 2);                            /* 设置当前可见行数 */

    lv_obj_add_event_cb(roller1, event_cb, LV_EVENT_VALUE_CHANGED, NULL);   /* 添加改变事件 */

    /**********************第二个滑轮*************************/
    roller2 = lv_roller_create(lv_scr_act());                               /* 创建滑轮部件 */
    lv_obj_align(roller2, LV_ALIGN_CENTER, 150, 0);

    lv_obj_set_style_text_line_space(roller2, 30, LV_STATE_DEFAULT);        /* 设置选项间隔 */
    lv_roller_set_options(roller2, "A\nB\nC\nD", LV_ROLLER_MODE_INFINITE);  /* 设置循环模式 */
    lv_roller_set_selected(roller2, 2, LV_ANIM_ON);                         /* 设置当前所选项 */
    lv_roller_set_visible_row_count(roller2, 3);                            /* 设置当前可见行数 */

    lv_obj_add_event_cb(roller2, event_cb, LV_EVENT_VALUE_CHANGED, NULL);   /* 添加改变事件 */
}

演示图片:

 演示视频:LVGL滑轮部件 

 ##二、LVGL 滑动条部件 >滑块部件常用于调节某个参数的值,它以直线滑动的形式来修改数值。

效果图:

 

 ###2.1 滑动条部件组成部分 主体(LV_PART_MAIN) 指示器(LV_PART_INDICATOR) 旋钮(LV_PART_KNOB) 

 ###2.2 滑动条部件基本API 创建滑块部件:

lv_obj_t *slider = lv_slider_create(parent);

点击5、LVGL控件-滑轮、滑动条、圆弧 ——古月居可查看全文 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值