You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.5 KiB
Python
65 lines
1.5 KiB
Python
def event_cb(e):
|
|
obj = e.get_target()
|
|
id = obj.get_selected_btn()
|
|
if id == 0:
|
|
prev = True
|
|
else:
|
|
prev = False
|
|
if id == 6:
|
|
next = True
|
|
else:
|
|
next = False
|
|
if prev or next:
|
|
# Find the checked butto
|
|
for i in range(7):
|
|
if obj.has_btn_ctrl(i, lv.btnmatrix.CTRL.CHECKED):
|
|
break
|
|
if prev and i > 1:
|
|
i-=1
|
|
elif next and i < 5:
|
|
i+=1
|
|
|
|
obj.set_btn_ctrl(i, lv.btnmatrix.CTRL.CHECKED)
|
|
|
|
#
|
|
# Make a button group
|
|
#
|
|
|
|
style_bg = lv.style_t()
|
|
style_bg.init()
|
|
style_bg.set_pad_all(0)
|
|
style_bg.set_pad_gap(0)
|
|
style_bg.set_clip_corner(True)
|
|
style_bg.set_radius(lv.RADIUS.CIRCLE)
|
|
style_bg.set_border_width(0)
|
|
|
|
|
|
style_btn = lv.style_t()
|
|
style_btn.init()
|
|
style_btn.set_radius(0)
|
|
style_btn.set_border_width(1)
|
|
style_btn.set_border_opa(lv.OPA._50)
|
|
style_btn.set_border_color(lv.palette_main(lv.PALETTE.GREY))
|
|
style_btn.set_border_side(lv.BORDER_SIDE.INTERNAL)
|
|
style_btn.set_radius(0)
|
|
|
|
map = [lv.SYMBOL.LEFT,"1","2", "3", "4", "5",lv.SYMBOL.RIGHT, ""]
|
|
|
|
btnm = lv.btnmatrix(lv.scr_act())
|
|
btnm.set_map(map)
|
|
btnm.add_style(style_bg, 0)
|
|
btnm.add_style(style_btn, lv.PART.ITEMS)
|
|
btnm.add_event_cb(event_cb, lv.EVENT.VALUE_CHANGED, None)
|
|
btnm.set_size(225, 35)
|
|
|
|
# Allow selecting on one number at time
|
|
btnm.set_btn_ctrl_all(lv.btnmatrix.CTRL.CHECKABLE)
|
|
btnm.clear_btn_ctrl(0, lv.btnmatrix.CTRL.CHECKABLE)
|
|
btnm.clear_btn_ctrl(6, lv.btnmatrix.CTRL.CHECKABLE)
|
|
|
|
btnm.set_one_checked(True)
|
|
btnm.set_btn_ctrl(1, lv.btnmatrix.CTRL.CHECKED)
|
|
|
|
btnm.center()
|
|
|