M5Roller
M5Roller是一个可用于在用户界面中创建滚轮(旋转器/滚轮选择器)的控件。它提供了一个可滚动的选项列表,用户可以通过向上或向下滚动来选择,类似于iOS风格的选择器滚轮。
UiFlow2 示例
基础滚轮
在UiFlow2中打开 cores3_roller_basic_example.m5f2 项目。
此示例演示如何创建具有多个选项的滚轮并处理选择事件。
UiFlow2 代码块:
示例输出:
None
MicroPython 示例
基础滚轮
此示例演示如何创建具有多个选项的滚轮并处理选择事件。
MicroPython 代码块:
1import os, sys, io 2import M5 3from M5 import * 4import m5ui 5import lvgl as lv 6 7 8page0 = None 9roller0 = None 10 11 12def setup(): 13 global page0, roller0 14 15 M5.begin() 16 Widgets.setRotation(1) 17 m5ui.init() 18 page0 = m5ui.M5Page(bg_c=0xFFFFFF) 19 roller0 = m5ui.M5Roller( 20 x=110, 21 y=71, 22 w=100, 23 h=0, 24 options=[ 25 "January", 26 "February", 27 "March", 28 "April", 29 "May", 30 "June", 31 "July", 32 "August", 33 "September", 34 "October", 35 "November", 36 "December", 37 ], 38 mode=lv.roller.MODE.INFINITE, 39 selected=0, 40 visible_row_count=3, 41 font=lv.font_montserrat_14, 42 parent=page0, 43 ) 44 45 page0.screen_load() 46 print(roller0.get_options()) 47 48 49def loop(): 50 global page0, roller0 51 M5.update() 52 53 54if __name__ == "__main__": 55 try: 56 setup() 57 while True: 58 loop() 59 except (Exception, KeyboardInterrupt) as e: 60 try: 61 m5ui.deinit() 62 from utility import print_error_msg 63 64 print_error_msg(e) 65 except ImportError: 66 print("please update to latest firmware")
示例输出:
None
API参考
M5Roller
- class m5ui.roller.M5Roller(*args, **kwargs)
基类:
roller创建一个滚轮控件。
- 参数:
UiFlow2 代码块:
None
MicroPython 代码块:
from m5ui import M5Roller import lvgl as lv m5ui.init() roller_0 = M5Roller(x=10, y=10, w=100, h=100, options=["Option 1", "Option 2"], mode=lv.roller.MODE.NORMAL, selected=0, visible_row_count=2, font=lv.font_montserrat_14, parent=page0)
- set_flag(flag, value)
为对象设置标志。如果
value为True,则添加标志;如果为False,则移除标志。UiFlow2 代码块:

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

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

MicroPython 代码块:
roller_0.set_state(lv.STATE.CHECKED, True)
- toggle_state(state)
切换滚轮的状态。如果状态已设置,则取消设置;如果未设置,则将其设置。
- 参数:
state (int) – 要切换的状态。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
roller_0.toggle_state(lv.STATE.CHECKED)
- event(callback, event, user_data=None)
为滚轮添加事件回调。当指定事件发生时将调用回调函数。
- 参数:
callback – 要调用的回调函数。
event (int) – 要监听的事件。
user_data – 传递给回调函数的可选用户数据。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
def roller_callback(event_obj): print("Roller value changed") roller_0.event(roller_callback, lv.EVENT.VALUE_CHANGED)
- set_bg_color(color, opa, part)
设置滚轮的背景颜色。
UiFlow2 代码块:

MicroPython 代码块:
roller_0.set_bg_color(lv.color_hex(0x000000), 255, lv.PART.MAIN | lv.STATE.DEFAULT) roller_0.set_bg_color(lv.color_hex(0x000000), 255, lv.PART.SELECTED | lv.STATE.DEFAULT)
- set_border_color(color, opa, part)
设置滚轮的边框颜色。
- 参数:
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
roller_0.set_border_color(lv.color_hex(0x2196F3), 255, lv.PART.MAIN | lv.STATE.DEFAULT) roller_0.set_border_color(lv.color_hex(0x2196F3), 255, lv.PART.SELECTED | lv.STATE.DEFAULT)
- set_style_border_width(width, part)
设置滚轮的边框宽度。
UiFlow2 代码块:

MicroPython 代码块:
roller_0.set_style_border_width(2, lv.PART.MAIN | lv.STATE.DEFAULT) roller_0.set_style_border_width(2, lv.PART.SELECTED | lv.STATE.DEFAULT)
- get_selected()
获取当前选中选项的索引。
- 返回:
选中选项的索引。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
selected_index = roller_0.get_selected()
- set_visible_row_count(count)
设置滚轮中可见行数。
- 参数:
count (int) – 可见行数。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
roller_0.set_visible_row_count(3)
- set_pos(x, y)
设置滚轮的位置。
UiFlow2 代码块:

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

MicroPython 代码块:
roller_0.set_x(100)
- align_to(obj, align, x_ofs=0, y_ofs=0)
将滚轮对齐到另一个对象。
- 参数:
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
roller_0.align_to(other_obj, lv.ALIGN.CENTER, 0, 0)
- set_size(w, h)
设置滚轮的尺寸。
UiFlow2 代码块:

MicroPython 代码块:
roller_0.set_size(150, 120)
- set_width(w)
设置滚轮的宽度。
- 参数:
w (int) – 滚轮的宽度。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
roller_0.set_width(150)
- get_width()
获取滚轮的宽度。
- 返回:
滚轮的宽度。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
width = roller_0.get_width()
- set_height(h)
设置滚轮的高度。
- 参数:
h (int) – 滚轮的高度。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
roller_0.set_height(120)
- get_height()
获取滚轮的高度。
- 返回:
滚轮的高度。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
height = roller_0.get_height()
- set_options(options, mode=lvgl.roller.MODE.NORMAL)
设置滚轮的选项。
- 参数:
options (list) – 要在滚轮中显示的选项列表。
mode (lv.roller.MODE) – 滚轮模式(默认为NORMAL)。
UiFlow2 代码块:

MicroPython 代码块:
roller_0.set_options(["Option 1", "Option 2"], mode=lv.roller.MODE.NORMAL)
- get_options()
获取下拉菜单中的选项列表。
- 返回:
选项列表。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
options = roller_0.get_options()
- get_option_count()
获取滚轮中选项的总数。
- 返回:
选项的数量。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
option_count = roller_0.get_option_count()
- get_selected_str()
获取当前选中选项的文本。
- 返回:
选中选项的文本。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
selected_option = roller_0.get_selected_str()
- set_style_radius(radius, part)
设置滑块组件的圆角半径。
- 参数:
- 返回:
None
- 返回类型:
None
UiFlow2 代码块:

MicroPython 代码块:
roller_0.set_style_radius(10, lv.PART.MAIN | lv.STATE.DEFAULT) roller_0.set_style_radius(10, lv.PART.SELECTED | lv.STATE.DEFAULT)

