LVGL部件5

一.滚轮部件

1.知识概述

![2024-02-01T10:32:47.png][1]

![2024-02-01T11:28:53.png][2]

![2024-02-01T11:37:46.png][3]

2.函数接口

1.lv_obj_add_state

在 LVGL(LittlevGL)中,lv_obj_add_state 函数用于向对象添加状态。该函数的原型如下:

void lv_obj_add_state(lv_obj_t * obj, lv_state_t state)
  • obj 是指向要操作的对象的指针。
  • state 是要添加的状态,可以是以下之一:
    • LV_STATE_DEFAULT: 默认状态
    • LV_STATE_CHECKED: 复选框选中状态
    • LV_STATE_FOCUSED: 对象接收焦点状态
    • LV_STATE_EDITED: 对象正在被编辑状态
    • LV_STATE_PRESSED: 对象被按下状态
    • LV_STATE_DISABLED: 对象禁用状态
    • 等等,LVGL 提供了更多状态以供使用。

以下是一个示例代码,展示如何使用 lv_obj_add_state 函数向对象添加状态:

// 创建一个按钮
lv_obj_t *button = lv_btn_create(lv_scr_act(), NULL);

// 向按钮对象添加按下状态
lv_obj_add_state(button, LV_STATE_PRESSED);

在这个示例中,我们创建了一个按钮对象 button,并使用 lv_obj_add_state 函数向按钮对象添加了按下状态。

2.lv_roller_set_selected

在 LVGL(LittlevGL)中,lv_roller_set_selected 函数用于设置滚轮(Roller)组件的选中项。该函数的原型如下:

void lv_roller_set_selected(lv_obj_t * roller, uint16_t sel_opt, lv_anim_enable_t anim);
  • roller 是指向滚轮对象的指针。
  • sel_opt 是要设置为选中的项的索引。第一项的索引为0。
  • anim 是布尔值,用于指定是否使用动画效果进行选中项的更改。

以下是一个示例代码,展示如何使用 lv_roller_set_selected 函数设置滚轮的选中项:

// 创建一个滚轮
lv_obj_t *roller = lv_roller_create(lv_scr_act(), NULL);

// 添加选项到滚轮
lv_roller_set_options(roller, "Option 1\nOption 2\nOption 3", LV_ROLLER_MODE_NORMAL);

// 设置第二项为选中项
lv_roller_set_selected(roller, 1, false);

在这个示例中,我们创建了一个滚轮对象 roller,使用 lv_roller_set_options 函数添加了三个选项,然后使用 lv_roller_set_selected 函数将第二项设置为选中项。

二.滑块部件

1.知识概述

![2024-02-01T12:02:41.png][4]

![2024-02-01T12:03:28.png][5]

![2024-02-01T12:13:37.png][6]

2.函数接口

1.lv_slider_set_value

在 LVGL(LittlevGL)中,lv_slider_set_value 函数用于设置滑块(Slider)组件的值。该函数的原型如下:

void lv_slider_set_value(lv_obj_t * slider, int16_t value, lv_anim_enable_t anim)
  • slider 是指向滑块对象的指针。
  • value 是要设置的滑块的值。
  • anim 是布尔值,用于指定是否使用动画效果进行滑块值的更改。

以下是一个示例代码,展示如何使用 lv_slider_set_value 函数设置滑块的值:

// 创建一个滑块
lv_obj_t *slider = lv_slider_create(lv_scr_act(), NULL);

// 设置滑块的取值范围和初始值
lv_slider_set_range(slider, 0, 100);
lv_slider_set_value(slider, 50, false);

在这个示例中,我们创建了一个滑块对象 slider,使用 lv_slider_set_range 函数设置了滑块的取值范围为 0 到 100,并使用 lv_slider_set_value 函数将滑块的初始值设置为 50。

2.lv_slider_set_mode

在 LVGL(LittlevGL)中,lv_slider_set_mode 函数用于设置滑块(Slider)组件的模式。该函数的原型如下:

void lv_slider_set_mode(lv_obj_t * slider, lv_slider_mode_t mode);
  • slider 是指向滑块对象的指针。
  • mode 是要设置的滑块模式,可以是以下之一:
    • LV_SLIDER_MODE_NORMAL: 普通模式,滑块的值以整数形式表示。
    • LV_SLIDER_MODE_RANGE: 范围模式,滑块的值表示一个范围。

以下是一个示例代码,展示如何使用 lv_slider_set_mode 函数设置滑块的模式:

// 创建一个滑块
lv_obj_t *slider = lv_slider_create(lv_scr_act(), NULL);

// 设置滑块的模式为范围模式
lv_slider_set_mode(slider, LV_SLIDER_MODE_RANGE);

在这个示例中,我们创建了一个滑块对象 slider,并使用 lv_slider_set_mode 函数将滑块的模式设置为范围模式。

3.代码实例

static void event_cb(lv_event_t *e)
{
    lv_obj_t *target=lv_event_get_target(e);   //获取触发源
    printf("%d",lv_slider_get_value(target));  // 获取当前值
    printf("%d\n ",lv_slider_get_left_value(target));  // 获取当前左值

}

void my_lvgl(void)
{
    lv_obj_t *slider=lv_slider_create(lv_scr_act());   //创建滚轮部件
    lv_obj_center(slider);   //居中
    lv_obj_set_size(slider,200,20);   //设置大小

    lv_slider_set_value(slider,50,LV_ANIM_OFF);    //设置当前值
    lv_slider_set_range(slider,-100,100);     //设置取值范围
    lv_obj_add_event_cb(slider,event_cb,LV_EVENT_VALUE_CHANGED,NULL);   //绑定事件,值改变触发

    lv_slider_set_mode(slider,LV_SLIDER_MODE_RANGE); //切换双向模式
    lv_slider_set_left_value(slider,-50,LV_ANIM_OFF);    //设置当前左值


}
  • 31
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

左手的月光

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

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

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

打赏作者

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

抵扣说明:

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

余额充值