章娅萝 发表于 2025-6-9 15:19:05

LVGL-弧形滑条

lv_arc_create函数

此函数用于创建一个滑条
lv_obj_t *arc =lv_arc_create(lv_obj_t *scr1);
//scr:父对象的指针
//ret:返回创建的滑条的的句柄指针lv_arc_set_value函数

此函数可以设置滑条的值
lv_arc_set_value(lv_obj_t *arc,val );
//arc:滑条的句柄
//val:要设置的值lv_arc_set_range函数

此函数用于设置滑条的范围,默认范围为0-100
lv_arc_set_range(lv_obj_t *arc, min, max)
//arc:滑条的句柄
//min:要设置的最小值
//max:要设置的最大值lv_arc_set_bg_angles函数

此函数用于设置弧形开始和结束的角度
lv_arc_set_bg_angles(lv_obj_t *arc, start_angle, end_angle)
//arc:滑条的句柄
//start_angle:开始的角度
//end_angle:结束的角度lv_arc_set_bg_start_angle函数

此函数用于设置弧形开始的角度
lv_arc_set_bg_start_angle(lv_obj_t *arc, angle)
//arc:滑条的句柄
//angle:开始的角度lv_arc_set_bg_end_angle函数

此函数用于设置弧形结束的角度
lv_arc_set_bg_end_angle(lv_obj_t *arc, angle)
//arc:滑条的句柄
//angle:结束的角度lv_arc_set_rotation函数

此函数用于设置弧形组件的旋转角度
void lv_arc_set_rotation(lv_obj_t * arc, uint16_t deg)
//arc:滑条的句柄
//deg:旋转角度,决定了弧形的起始方向lv_arc_set_mode函数

此函数用于设置弧形组件模式
void lv_arc_set_mode(lv_obj_t * arc, lv_arc_mode_t mode);
//arc:滑条的句柄
//mode:设置的模式
//LV_ARC_MODE_NORMAL:普通模式,指示弧从最小值开始按顺时针方向绘制到当前值。
//LV_ARC_MODE_REVERSE:反向模式,指示弧从最大值开始按逆时针方向绘制到当前值。
//LV_ARC_MODE_SYMMETRICAL:对称模式,指示弧从中间点绘制到当前值lv_arc_set_change_rate函数

此函数用于设置弧形组件变化率的函数
void lv_arc_set_change_rate(lv_obj_t * arc, uint32_t rate);
//arc:滑条的句柄
//rate:变化速率,度每秒。用于限制弧形组件在用户通过指针输入(如手指、鼠标等)调整时的变化速度lv_obj_remove_style函数

此函数用于移除对象的某些属性
lv_obj_remove_style(arc, NULL, LV_PART_KNOB);
lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE);
void lv_obj_remove_style(lv_obj_t* obj, const lv_style_t* style, lv_style_selector_t selector)
//obj:指向对象的指针
//style:指向要移除的样式的指针。可以是 NULL 来检查仅选择器并移除所有匹配的样式
//selector:与要移除的样式匹配的选择器,可以是状态和部分的 OR-ed 值。使用 LV_STATE_ANY 和 LV_PART_ANY 可以移除任何状态或部分的样式。lv_obj_clear_flag函数

用于清除对象的特定标志
void lv_obj_clear_flag(lv_obj_t * obj, lv_obj_flag_t flag);
//obj:指向要清除标志的对象的指针。
//flag:要清除的标志
/*
LV_OBJ_FLAG_HIDDEN:对象不可见。
LV_OBJ_FLAG_CLICKABLE:对象可点击。
LV_OBJ_FLAG_CLICK_FOCUSABLE:对象可以聚焦(用于键盘导航)。
LV_OBJ_FLAG_CHECKABLE:对象可被选中。
LV_OBJ_FLAG_SCROLLABLE:对象可以滚动。
LV_OBJ_FLAG_SCROLL_ELASTIC:滚动时允许超出内容。
LV_OBJ_FLAG_SCROLL_ONE:只能滚动一个方向。
LV_OBJ_FLAG_SCROLL_snap_x:在 x 方向上滚动时对齐。
LV_OBJ_FLAG_SCROLL_snap_y:在 y 方向上滚动时对齐。
LV_OBJ_FLAG_SCROLLABLE:对象可以滚动。
LV_OBJ_FLAG_SCROLL_WITH_ARROW:使用箭头键滚动。
LV_OBJ_FLAG_FLEX_IN:对象是 flex 容器中的一个项目。
LV_OBJ_FLAG_FLOATING:对象可以浮动在其他对象之上。
LV_OBJ_FLAG_OVERFLOW_VISIBLE:显示溢出的内容。
LV_OBJ_FLAG_LAYOUT_1:对象使用布局 1。
LV_OBJ_FLAG_LAYOUT_2:对象使用布局 2。
LV_OBJ_FLAG_ADV_LAYOUT:对象使用高级布局。
LV_OBJ_FLAG_GROUP_DEF:对象是默认分组的一部分。
LV_OBJ_FLAG_SCROLL Chain:滚动时链接到另一个对象。
LV_OBJ_FLAG_SHRINK:对象可以缩小。
LV_OBJ_FLAG_GROW:对象可以增长。
LV_OBJ_FLAG_CUSTOM_1、LV_OBJ_FLAG_CUSTOM_2:自定义标志。
*/lv_obj_set_ext_click_size函数

用于扩展对象的点击区域
void lv_obj_set_ext_click_area(lv_obj_t * obj, lv_coord_t size);
//obj 是指向对象的指针
//size 是扩展区域的大小lv_arc_align_obj_to_angle函数

用于将一个对象与弧形组件(lv_arc)的特定角度对齐
void lv_arc_align_obj_to_angle(lv_obj_t * arc, lv_obj_t * obj_to_align, int16_t radius_offset);
//arc:指向 lv_arc 对象的指针
//obj_to_align:指向需要对齐的对象的指针
//radius_offset:从弧形的半径开始的偏移量。正值表示向外偏移,负值表示向内偏移。


来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: LVGL-弧形滑条