问题描述:
使用的01 k230开发板,通过CanMV使用lvgl的slider控件时,出现了拖动滑动条松手后,异常归零复位的现象,不确定是否都存在这个问题。
期待结果:
slider控件拖动到某个位置松手后,能够保持在设定位置,正常获取slider控件的value值。
实际结果:
拖动滑动条松手后,异常归零复位。
软硬件版本信息
:CanMV v1.3-88-g3552131(based on Micropython e00a144) on 2025-07-25; k230_canmv_01studio with K230
错误日志
为了查找问题,监听了slider控件的全部事件,监听事件号、slider值、事件名称如下,在标红色处开始出现了置零问题:
尝试解决过程:
查询了lv_slider.c底层相关源代码,看看此处是否需要去掉标红色框的内容(或者有其他解决方案):
补充材料
def user_gui_init():
# 创建屏幕
scr = lv.obj()
# 创建Label控件
label = lv.label(scr)
label.set_text("Value: 0")
label.align(lv.ALIGN.TOP_MID, 0, 20)
# 创建Slider控件
slider = lv.slider(scr)
#slider.set_width(300)
slider.set_size(500, 20) # 设置尺寸
slider.align(lv.ALIGN.CENTER, 0, 0)
slider.set_range(0, 100)
slider.set_value(0, lv.ANIM.OFF)
# 定义Slider事件回调
def slider_event_cb(event):
code = event.get_code()
value1 = slider.get_value()
if code == lv.EVENT.VALUE_CHANGED:
slider.set_value(value1, lv.ANIM.OFF)
label.set_text("Value: %d" % value1)
slider.add_event(slider_event_cb, lv.EVENT.VALUE_CHANGED, None)
# 加载屏幕
lv.scr_load(scr)