@@ -1,20 +0,0 @@
|
||||
#
|
||||
# A default slider with a label displaying the current value
|
||||
#
|
||||
def slider_event_cb(e):
|
||||
|
||||
slider = e.get_target_obj()
|
||||
slider_label.set_text("{:d}%".format(slider.get_value()))
|
||||
slider_label.align_to(slider, lv.ALIGN.OUT_BOTTOM_MID, 0, 10)
|
||||
|
||||
# Create a slider in the center of the display
|
||||
slider = lv.slider(lv.screen_active())
|
||||
slider.center()
|
||||
slider.add_event_cb(slider_event_cb, lv.EVENT.VALUE_CHANGED, None)
|
||||
|
||||
# Create a label below the slider
|
||||
slider_label = lv.label(lv.screen_active())
|
||||
slider_label.set_text("0%")
|
||||
|
||||
slider_label.align_to(slider, lv.ALIGN.OUT_BOTTOM_MID, 0, 10)
|
||||
|
||||
@@ -1,48 +0,0 @@
|
||||
#
|
||||
# Show how to style a slider.
|
||||
#
|
||||
# Create a transition
|
||||
props = [lv.STYLE.BG_COLOR, 0]
|
||||
transition_dsc = lv.style_transition_dsc_t()
|
||||
transition_dsc.init(props, lv.anim_t.path_linear, 300, 0, None)
|
||||
|
||||
style_main = lv.style_t()
|
||||
style_indicator = lv.style_t()
|
||||
style_knob = lv.style_t()
|
||||
style_pressed_color = lv.style_t()
|
||||
style_main.init()
|
||||
style_main.set_bg_opa(lv.OPA.COVER)
|
||||
style_main.set_bg_color(lv.color_hex3(0xbbb))
|
||||
style_main.set_radius(lv.RADIUS_CIRCLE)
|
||||
style_main.set_pad_ver(-2) # Makes the indicator larger
|
||||
|
||||
style_indicator.init()
|
||||
style_indicator.set_bg_opa(lv.OPA.COVER)
|
||||
style_indicator.set_bg_color(lv.palette_main(lv.PALETTE.CYAN))
|
||||
style_indicator.set_radius(lv.RADIUS_CIRCLE)
|
||||
style_indicator.set_transition(transition_dsc)
|
||||
|
||||
style_knob.init()
|
||||
style_knob.set_bg_opa(lv.OPA.COVER)
|
||||
style_knob.set_bg_color(lv.palette_main(lv.PALETTE.CYAN))
|
||||
style_knob.set_border_color(lv.palette_darken(lv.PALETTE.CYAN, 3))
|
||||
style_knob.set_border_width(2)
|
||||
style_knob.set_radius(lv.RADIUS_CIRCLE)
|
||||
style_knob.set_pad_all(6) # Makes the knob larger
|
||||
style_knob.set_transition(transition_dsc)
|
||||
|
||||
style_pressed_color.init()
|
||||
style_pressed_color.set_bg_color(lv.palette_darken(lv.PALETTE.CYAN, 2))
|
||||
|
||||
# Create a slider and add the style
|
||||
slider = lv.slider(lv.screen_active())
|
||||
slider.remove_style_all() # Remove the styles coming from the theme
|
||||
|
||||
slider.add_style(style_main, lv.PART.MAIN)
|
||||
slider.add_style(style_indicator, lv.PART.INDICATOR)
|
||||
slider.add_style(style_pressed_color, lv.PART.INDICATOR | lv.STATE.PRESSED)
|
||||
slider.add_style(style_knob, lv.PART.KNOB)
|
||||
slider.add_style(style_pressed_color, lv.PART.KNOB | lv.STATE.PRESSED)
|
||||
|
||||
slider.center()
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
def slider_event_cb(e):
|
||||
code = e.get_code()
|
||||
obj = e.get_target_obj()
|
||||
|
||||
# Provide some extra space for the value
|
||||
if code == lv.EVENT.REFR_EXT_DRAW_SIZE:
|
||||
e.set_ext_draw_size(50)
|
||||
|
||||
elif code == lv.EVENT.DRAW_TASK_ADDED:
|
||||
dsc = e.get_draw_task()
|
||||
base_dsc = lv.draw_dsc_base_t.__cast__(dsc.draw_dsc)
|
||||
if base_dsc.part == lv.PART.INDICATOR:
|
||||
label_text = "{:d} - {:d}".format(obj.get_left_value(),slider.get_value())
|
||||
label_size = lv.point_t()
|
||||
lv.text_get_size(label_size, label_text, lv.font_default(), 0, 0, lv.COORD.MAX, 0)
|
||||
# print(label_size.x,label_size.y)
|
||||
label_area = lv.area_t()
|
||||
label_area.x1 = dsc.area.x1 + dsc.area.get_width() // 2 - label_size.x // 2
|
||||
label_area.x2 = label_area.x1 + label_size.x
|
||||
label_area.y2 = dsc.area.y1 - 10
|
||||
label_area.y1 = label_area.y2 - label_size.y
|
||||
|
||||
label_draw_dsc = lv.draw_label_dsc_t()
|
||||
label_draw_dsc.init()
|
||||
label_draw_dsc.text = label_text
|
||||
label_draw_dsc.text_local = 1
|
||||
|
||||
lv.draw_label(base_dsc.layer, label_draw_dsc, label_area)
|
||||
#
|
||||
# Show the current value when the slider if pressed by extending the drawer
|
||||
#
|
||||
#
|
||||
#Create a slider in the center of the display
|
||||
|
||||
slider = lv.slider(lv.screen_active())
|
||||
slider.center()
|
||||
|
||||
slider.set_mode(lv.slider.MODE.RANGE)
|
||||
slider.set_value(70, lv.ANIM.OFF)
|
||||
slider.set_left_value(20, lv.ANIM.OFF)
|
||||
|
||||
slider.add_event_cb(slider_event_cb, lv.EVENT.ALL, None)
|
||||
slider.add_flag(lv.obj.FLAG.SEND_DRAW_TASK_EVENTS)
|
||||
slider.refresh_ext_draw_size()
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#
|
||||
# Slider with opposite direction
|
||||
#
|
||||
def slider_event_cb(e):
|
||||
|
||||
slider = e.get_target_obj()
|
||||
slider_label.set_text("{:d}%".format(slider.get_value()))
|
||||
slider_label.align_to(slider, lv.ALIGN.OUT_BOTTOM_MID, 0, 10)
|
||||
|
||||
# Create a slider in the center of the display
|
||||
slider = lv.slider(lv.screen_active())
|
||||
slider.center()
|
||||
slider.add_event_cb(slider_event_cb, lv.EVENT.VALUE_CHANGED, None)
|
||||
slider.set_range(100, 0)
|
||||
|
||||
# Create a label below the slider
|
||||
slider_label = lv.label(lv.screen_active())
|
||||
slider_label.set_text("0%")
|
||||
|
||||
slider_label.align_to(slider, lv.ALIGN.OUT_BOTTOM_MID, 0, 10)
|
||||
|
||||
Reference in New Issue
Block a user