multslider控件

1. 使用场景

multslider滑动条控件主要用于需要直观调节数值的场景,如音量调节、亮度调节、参数阈值设置等,支持自定义数值范围、显示文本标签,可通过动画或即时方式更新数值,适用于嵌入式GUI(基于LVGL框架)的交互界面开发,尤其适合需要单维度数值调节的交互场景。

2. 主要接口说明

接口函数

功能说明

参数说明

返回值说明

lv_obj_t *lv_multslider_create(lv_obj_t *parent)

创建一个multslider对象

parent:父对象(如lv_obj_t类型的容器、页面等)

返回创建的multslider对象指针

void lv_multslider_set_txt(lv_obj_t *multslider, const char *txt)

设置multslider的文本标签

multslider:目标multslider对象;txt:文本字符串(如"音量")

void lv_multslider_set_value(lv_obj_t *multslider, int32_t value, lv_anim_enable_t anim)

设置multslider的当前数值

multslider:目标对象;value:要设置的数值;anim:是否启用动画(LV_ANIM_ON/LV_ANIM_OFF)

void lv_multslider_set_range(lv_obj_t *multslider, int32_t min, int32_t max)

设置multslider的数值范围

multslider:目标multslider对象;min:最小值;max:最大值

int32_t lv_multslider_get_max_value(lv_obj_t *multslider)

获取multslider的最大值

multslider:目标对象

返回设置的最大值

int32_t lv_multslider_get_min_value(lv_obj_t *multslider)

获取multslider的最小值

multslider:目标对象

返回设置的最小值

int32_t lv_multslider_get_value(lv_obj_t *multslider)

获取multslider的当前数值

multslider:目标对象

返回当前数值

3. 使用案例

3.1 使用案例

本案例使用multslider控件实现一种子控件位于滑块下面风格的滑动条。
/* When using the solution application architecture, the functions that must be defined */
static void on_start(void)
{
    lv_obj_t* parent = lv_scr_act();
    lv_obj_set_style_bg_opa(parent, LV_OPA_100, LV_PART_MAIN);
    lv_obj_set_style_bg_color(parent, LV_COLOR_RED, LV_PART_MAIN);

    lv_obj_t* slider = lv_multslider_create(parent);
    lv_obj_set_size(slider, LV_HOR_RES_MAX - 40, 60);
    lv_obj_refr_size(slider);
    lv_ext_set_local_font(slider, FONT_TITLE, LV_COLOR_WHITE);
    lv_obj_align(slider, LV_ALIGN_CENTER, 0, 0);
    lv_obj_refr_pos(slider);

    lv_obj_set_style_pad_all(slider, 0, LV_PART_MAIN);
    lv_obj_set_style_bg_opa(slider, LV_OPA_100, LV_PART_MAIN);
    lv_obj_set_style_bg_color(slider, LV_COLOR_BLACK, LV_PART_MAIN);

    lv_obj_set_style_bg_opa(slider, LV_OPA_50, LV_PART_INDICATOR);
    lv_obj_set_style_bg_color(slider, LV_COLOR_GRAY, LV_PART_INDICATOR);

    lv_obj_set_style_bg_opa(slider, LV_OPA_COVER, LV_PART_KNOB);
    lv_obj_set_style_bg_color(slider, LV_COLOR_GRAY, LV_PART_KNOB);

    lv_gesture_set_ignore(slider, true);

    lv_obj_t* lab = lv_label_create(slider);
    lv_ext_set_local_font(lab, FONT_TITLE, LV_COLOR_WHITE);
    lv_label_set_text(lab,"-");
    lv_obj_align(lab,LV_ALIGN_LEFT_MID,20,0);

    lab = lv_label_create(slider);
    lv_ext_set_local_font(lab, FONT_TITLE, LV_COLOR_WHITE);
    lv_label_set_text(lab, "+");
    lv_obj_align(lab, LV_ALIGN_RIGHT_MID, -20, 0);

    lab = lv_label_create(slider);
    lv_ext_set_local_font(lab, FONT_TITLE, LV_COLOR_WHITE);
    lv_label_set_text(lab, "multslider");
    lv_obj_align(lab, LV_ALIGN_CENTER, 0, 0);

}

/* When using the solution application architecture, the functions that must be defined */
static void on_resume(void)
{
    lv_gesture_disable();


}

/* When using the solution application architecture, the functions that must be defined */
static void on_pause(void)
{
    lv_gesture_enable();

}

/* When using the solution application architecture, the functions that must be defined */
static void on_stop(void)
{

}

3.2 案例效果展示

fishy

4. 注意事项