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
: 对象禁用状态以下是一个示例代码,展示如何使用 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.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
函数将滑块的模式设置为范围模式。
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); //设置当前左值
}