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 案例效果展示¶
4. 注意事项¶
无