LVGL部件5

一.滚轮部件

1.知识概述

LVGL部件5_第1张图片

LVGL部件5_第2张图片

LVGL部件5_第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.知识概述

LVGL部件5_第4张图片

LVGL部件5_第5张图片

LVGL部件5_第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);    //设置当前左值


}

你可能感兴趣的:(LVGL,gui,lvgl)