M5Slider
M5Slider是一个可以在用户界面中创建滑块的控件。它允许用户通过沿着轨道拖动手柄来从范围内选择一个值。
UiFlow2 应用示例
基础滑块
在UiFlow2中打开|cores3_slider_basic_example.m5f2|项目。
此示例创建一个基础滑块,可以用来选择0到100之间的值。
UiFlow2 代码块:
示例输出:
None
MicroPython 应用示例
基础滑块
此示例创建一个基础滑块,可以用来选择0到100之间的值。
MicroPython 代码块:
1# SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8import m5ui 9import lvgl as lv 10 11 12page0 = None 13slider0 = None 14label0 = None 15 16 17def slider0_value_changed_event(event_struct): 18 global page0, slider0, label0 19 label0.set_text(str(slider0.get_value())) 20 21 22def slider0_event_handler(event_struct): 23 global page0, slider0, label0 24 event = event_struct.code 25 if event == lv.EVENT.VALUE_CHANGED and True: 26 slider0_value_changed_event(event_struct) 27 return 28 29 30def setup(): 31 global page0, slider0, label0 32 33 M5.begin() 34 Widgets.setRotation(1) 35 m5ui.init() 36 page0 = m5ui.M5Page(bg_c=0xFFFFFF) 37 slider0 = m5ui.M5Slider( 38 x=60, 39 y=110, 40 w=200, 41 h=19, 42 mode=lv.slider.MODE.NORMAL, 43 min_value=0, 44 max_value=100, 45 value=25, 46 bg_c=0x2193F3, 47 color=0x2193F3, 48 parent=page0, 49 ) 50 label0 = m5ui.M5Label( 51 "25", 52 x=151, 53 y=142, 54 text_c=0x000000, 55 bg_c=0xFFFFFF, 56 bg_opa=0, 57 font=lv.font_montserrat_14, 58 parent=page0, 59 ) 60 61 slider0.add_event_cb(slider0_event_handler, lv.EVENT.ALL, None) 62 63 page0.screen_load() 64 65 66def loop(): 67 global page0, slider0, label0 68 M5.update() 69 70 71if __name__ == "__main__": 72 try: 73 setup() 74 while True: 75 loop() 76 except (Exception, KeyboardInterrupt) as e: 77 try: 78 m5ui.deinit() 79 from utility import print_error_msg 80 81 print_error_msg(e) 82 except ImportError: 83 print("please update to latest firmware")
示例输出:
None
API参考
M5Slider
- class m5ui.slider.M5Slider(*args, **kwargs)
基类:
slider创建一个滑块小部件。
- 参数:
x – 滑块的 x 位置。
y – 滑块的 y 位置。
w – 滑块的宽度。
h – 滑块的高度。
mode – 仅支持“lv.slider.MODE.NORMAL”。
min_value – 范围的最小值。
max_value – 范围的最大值。
value – 滑块的当前值。
bg_c – 设置滑块的背景颜色。
color – 滑块指示器的颜色。
parent – 滑块的父对象。如果未指定,则将被设置为活动屏幕。
UiFlow2 代码块:
None
MicroPython 代码块:
from m5ui import M5Slider import lvgl as lv slider_0 = M5Slider(x=50, y=50, w=200, h=20, min_value=0, max_value=100, value=25)
- set_flag(flag, value)
设置对象上的标志。如果
value为True,则添加标志;如果为False,则移除标志。UiFlow2 代码块:

MicroPython 代码块:
slider_0.set_flag(lv.obj.FLAG.HIDDEN, True)
- toggle_flag(flag)
切换对象上的标志。如果标志已设置,则移除它;如果未设置,则添加它。
- 参数:
flag (int) – 要切换的标志。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
slider_0.toggle_flag(lv.obj.FLAG.HIDDEN)
- set_state(state, value)
设置滑块的状态。如果
value为 True,则设置状态;如果为 False,则取消设置状态。UiFlow2 代码块:

MicroPython 代码块:
slider_0.set_state(lv.STATE.PRESSED, True)
- toggle_state(state)
切换滑块的状态。如果滑块状态已设置,则表示取消设置;如果滑块状态未设置,则表示设置。
- 参数:
state (int) – 要切换的标志。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
slider_0.toggle_state(lv.STATE.PRESSED)
- add_event_cb(handler, event, user_data)
为滑块添加事件回调。当指定的事件发生时,将调用回调函数。
- 参数:
handler (function) – 要调用的回调函数。
event (int) – 要监听的事件。
user_data (Any) – 传递给回调函数的可选用户数据。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
def slider_0_value_changed_event(event_struct): global slider_0 value = slider_0.get_value() print(f"Slider value changed to: {value}") def slider_0_event_handler(event_struct): global slider_0 event = event_struct.code if event == lv.EVENT.VALUE_CHANGED: slider_0_value_changed_event(event_struct) return slider_0.add_event_cb(slider_0_event_handler, lv.EVENT.ALL, None)
- set_bg_color(color, opa, part)
设置滑块的背景颜色。
- 参数:
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
slider_0.set_bg_color(lv.color_hex(0x2196F3), 255, lv.PART.INDICATOR | lv.STATE.DEFAULT)
- set_style_radius(radius, part)
设置滑块组件的角半径。
UiFlow2 代码块:



MicroPython 代码块:
slider_0.set_style_radius(10, lv.PART.MAIN | lv.STATE.DEFAULT)
- set_bg_grad_color(color, opa, grad_color, grad_opd, grad_dir, part)
设置滑块的背景颜色。
- 参数:
- 返回:
None
UiFlow2 代码块:



MicroPython 代码块:
bar.set_bg_grad_color(0x00FF00, 255, 0xFF0000, 255, lv.GRAD_DIR.HOR, lv.PART.MAIN | lv.STATE.DEFAULT) bar.set_bg_grad_color(0x00FF00, 255, 0xFF0000, 255, lv.GRAD_DIR.HOR, lv.PART.INDICATOR | lv.STATE.DEFAULT)
- get_value()
获取滑块的当前值。
- 返回:
滑块的当前值。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
value = slider_0.get_value()
- set_mode(mode)
设置滑块的模式。
- get_min_value()
范围的最小值。
- 返回:
范围的最小值。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
min_value = slider_0.get_min_value()
- get_max_value()
范围的最大值。
- 返回:
范围的最大值。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
max_value = slider_0.get_max_value()
- set_pos(x, y)
设置滑块的位置。
UiFlow2 代码块:

MicroPython 代码块:
slider_0.set_pos(100, 100)
- set_x(x)
设置滑块的x坐标。
- 参数:
x (int) – 滑块的x坐标。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
slider_0.set_x(100)
- set_y(y)
设置滑块的y坐标。
- 参数:
y (int) – 滑块的y坐标。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
slider_0.set_y(100)
- align_to(obj, align, x, y)
将滑块与另一个对象对齐。
- 参数:
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
slider_0.align_to(page_0, lv.ALIGN.CENTER, 0, 0)
- set_size(width, height)
设置滑块的尺寸。
UiFlow2 代码块:

MicroPython 代码块:
slider_0.set_size(200, 20)
- set_width(width)
设置滑块的宽度。
- 参数:
width (int) – 滑块的宽度。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
slider_0.set_width(200)
- set_height(height)
设置滑块的高度。
- 参数:
height (int) – 滑块的高度。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
slider_0.set_height(20)
- set_value(value, anim=False)
设置滑块的值。
UiFlow2 代码块:

MicroPython 代码块:
slider_0.set_value(50, True)



