LVGL V8之slider

133 篇文章 110 订阅

创建Slider

  • 在当前活动界面创建一个slider对象
 lv_obj_t* slider = lv_slider_create(lv_scr_act());
  • 设置slider的宽度为200
 lv_obj_set_width(slider, 200);
  • 对齐到当前活动界面的中心
lv_obj_center(slider); 
  • 在当前活动界面创建Label对象
 lv_obj_t *label = lv_label_create(lv_scr_act());
  • 设置label的显示内容
lv_label_set_text(label, "0");
  • 在slider的顶部外框居中的x偏移0,y偏移-15处对齐放置Label对象
lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -15); 
  • 添加slider事件LV_EVENT_VALUE_CHANGED
 lv_obj_add_event_cb(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL); 
  • 设置用户数据
 lv_obj_set_user_data(slider, label);

标题slider_event_cb事件处理

  • 获取滑动slider对象
static void slider_event_cb(lv_event_t* e)
{
   lv_obj_t* slider = lv_event_get_target(e);
}
  • 获取用户数据label对象
lv_obj_t* label = (lv_obj_t*)lv_obj_get_user_data(slider);
  • 获取slider滑动后的值,并更新Label对象显示
lv_label_set_text_fmt(label, "%d", lv_slider_get_value(slider));
  • 重新对齐label对象
 lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -15);

完整代码,仅供参考


static void slider_event_cb(lv_event_t* e)
{
    lv_obj_t* slider = lv_event_get_target(e);
    lv_obj_t* label = (lv_obj_t*)lv_obj_get_user_data(slider);
    /*Refresh the text*/
    lv_label_set_text_fmt(label, "%d", lv_slider_get_value(slider));
    lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -15); /*Align top of the slider*/
}
/**
 * Create a slider and write its value on a label.
*/
static void lv_example_get_started_3(void)
{
    /*Create a slider in the center of the display*/
    lv_obj_t* slider = lv_slider_create(lv_scr_act());
    lv_obj_set_width(slider, 200); /*Set the width*/
    lv_obj_center(slider); /*Align to the center of␣
    ,→the parent (screen)*/
    
        /*Create a label below the slider*/
    lv_obj_t *  label = lv_label_create(lv_scr_act());
    lv_label_set_text(label, "0");
    lv_obj_align_to(label, slider, LV_ALIGN_OUT_TOP_MID, 0, -15); 

    lv_obj_add_event_cb(slider, slider_event_cb, LV_EVENT_VALUE_CHANGED, NULL);
    lv_obj_set_user_data(slider, label);
}

调用lv_example_get_started_3,运行操作效果

在这里插入图片描述

  • 修改slider的滑动范围从0~1000
lv_slider_set_range(slider, 0, 1000);
  • 设置的初值为300
 lv_slider_set_value(slider, 300, LV_ANIM_ON);
 lv_label_set_text(label, "300");

再次运行操作效果

在这里插入图片描述

  • 设置slider左边起始值
lv_slider_set_left_value(slider, 200, LV_ANIM_ON);

运行操作效果

在这里插入图片描述

  • 设置slider mode为range模式
 lv_slider_set_mode(slider, LV_SLIDER_MODE_RANGE);

运行操作效果

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风雨依依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值