littleVGL学习笔记14——lv_slider 滑块

1. 介绍

  lv_slider 滑块是由 lv_bar 进度条对象外加一个类似于旋钮的东西构成的,这个旋钮可以被拖拽来设置 lv_slider 滑块的值,和 lv_bar 进度条一样,lv_slider 也可以被设置成是水平滑块或者是垂直滑块,不仅如此,lv_bar 对象上的大部分特性在 lv_slider 对象上基本都能找到,比如设置进度值,动画时间,设置最小最大范围等等,API 接口的用法基本是一模一样的.最后来说一下它的事件,当滑块被点击或者滑块上面的旋钮被拖拽导致其进度值发生变化时,它就会给它的事件回调函数发送一个 LV_EVENT_VALUE_CHANGED 事件,如果旋钮是在被持续拖拽的话,那么 LV_EVENT_VALUE_CHANGED 事件也将会被持续发送,有时候我们可能不希望持续接受到此事件,那我们只需忽略就行,只监听它的 LV_EVENT_RELEASED 松手事件来获取最后的进度值。
在这里插入图片描述

2. lv_slider 的 API 接口

2.1 主要数据类型

2.1.1 滑块样式数据类型
enum {
LV_SLIDER_STYLE_BG,
LV_SLIDER_STYLE_INDIC,
LV_SLIDER_STYLE_KNOB,
};
typedef uint8_t lv_slider_style_t;

LV_SLIDER_STYLE_BG: 滑块的背景样式,其实就是其内部的 lv_bar 进度条的背景样式,使用样式中的 style.body 字段,其中的 padding 字段用来设置背景边框与旋钮边框之间的距离;
LV_SLIDER_STYLE_INDIC: 滑块的指示器样式,其实就是其内部的 lv_bar 进度条的指示器样式,使用样式中的 style.body 字段,其中的 padding 字段设置指示器与背景边框之间的距离;
LV_SLIDER_STYLE_KNOB: 滑块上旋钮的样式,使用样式中的 style.body 字段,但是其内部的 padding 字段除外。

2.2 API 接口

2.2.1 创建对象
lv_obj_t * lv_slider_create(lv_obj_t * par, const lv_obj_t * copy);

参数:
par: 父对象
copy: 拷贝的对象,如果无拷贝的话,传 NULL 值
返回值:
返回创建出来的对象,如果返回 NULL 的话,说明堆空间不够了

2.2.2 设置动画时长
static inline void lv_slider_set_anim_time(lv_obj_t * slider, uint16_t anim_time);

参数:
slider: 滑块对象
anim_time: 动画时长,单位 ms
注意此 API 接口必须得放在 lv_slider_set_value 接口前面调用,否则无效

2.2.3 设置进度值
static inline void lv_slider_set_value(lv_obj_t * slider, int16_t value, lv_anim_enable_t anim);

参数:
slider: 滑块对象
value: 新的进度值
anim: 在切换到新的进度值时,是否使能动画效果,有 2 个可选值如下:
LV_ANIM_OFF: 不使能动画效果
LV_ANIM_ON: 使能动画效果

2.2.4 设置进度范围
static inline void lv_slider_set_range(lv_obj_t * slider, int16_t min, int16_t max);

参数:
slider: 滑块对象
min: 最小值
max: 最大值

2.2.5 设置样式
void lv_slider_set_style(lv_obj_t * slider, lv_slider_style_t type, const lv_style_t * style);

参数:
slider: 滑块对象
type: 设置哪一个部件的样式,有如下 3 个可选值:
LV_SLIDER_STYLE_BG: 设置背景的样式
LV_SLIDER_STYLE_INDIC: 设置指示器的样式
LV_SLIDER_STYLE_KNOB: 设置旋钮的按钮
style: 样式

2.2.6 获取当前的进度值
int16_t lv_slider_get_value(const lv_obj_t * slider);

参数:
slider: 滑块对象
返回值:
返回当前的进度值

2.2.7 判断旋钮是否正在被拖拽
bool lv_slider_is_dragged(const lv_obj_t * slider);

参数:
slider: 滑块对象
返回值:
返回 true 代表正在被拖拽,返回 false 代表没有在被拖拽。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

贾贾乾杯

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

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

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

打赏作者

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

抵扣说明:

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

余额充值