M5Checkbox
M5Checkbox是一个可以在用户界面中创建复选框的控件。它可以用来允许用户通过可视化指示器选择或取消选择选项。
UiFlow2 应用示例
基础复选框
在UiFlow2中打开|cores3_checkbox_basic_example.m5f2|项目。
此示例创建一个可以选中和取消选中的基础复选框。
UiFlow2 代码块:
示例输出:
None
MicroPython 应用示例
基础复选框
此示例创建一个可以选中和取消选中的基础复选框。
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 13checkbox0 = None 14checkbox1 = None 15label0 = None 16 17 18def checkbox0_checked_event(event_struct): 19 global page0, checkbox0, checkbox1, label0 20 label0.set_text(str("checked")) 21 22 23def checkbox0_unchecked_event(event_struct): 24 global page0, checkbox0, checkbox1, label0 25 label0.set_text(str("unchecked")) 26 27 28def checkbox0_event_handler(event_struct): 29 global page0, checkbox0, checkbox1, label0 30 event = event_struct.code 31 obj = event_struct.get_target_obj() 32 if event == lv.EVENT.VALUE_CHANGED: 33 if obj.has_state(lv.STATE.CHECKED): 34 checkbox0_checked_event(event_struct) 35 else: 36 checkbox0_unchecked_event(event_struct) 37 return 38 39 40def setup(): 41 global page0, checkbox0, checkbox1, label0 42 43 M5.begin() 44 Widgets.setRotation(1) 45 m5ui.init() 46 page0 = m5ui.M5Page(bg_c=0xFFFFFF) 47 checkbox0 = m5ui.M5Checkbox( 48 title="checkbox0", 49 value=False, 50 x=77, 51 y=106, 52 title_c=0x212121, 53 title_font=lv.font_montserrat_24, 54 bullet_border_c=0x2193F3, 55 bullet_bg_c=0xFFFFFF, 56 parent=page0, 57 ) 58 checkbox1 = m5ui.M5Checkbox( 59 title="checkbox1", 60 value=False, 61 x=80, 62 y=54, 63 title_c=0x212121, 64 title_font=lv.font_montserrat_24, 65 bullet_border_c=0x2193F3, 66 bullet_bg_c=0xFFFFFF, 67 parent=page0, 68 ) 69 label0 = m5ui.M5Label( 70 "label0", 71 x=124, 72 y=153, 73 text_c=0x000000, 74 bg_c=0xFFFFFF, 75 bg_opa=0, 76 font=lv.font_montserrat_24, 77 parent=page0, 78 ) 79 80 checkbox0.add_event_cb(checkbox0_event_handler, lv.EVENT.ALL, None) 81 82 page0.screen_load() 83 checkbox1.set_state(lv.STATE.DISABLED, True) 84 checkbox1.set_state(lv.STATE.CHECKED, True) 85 86 87def loop(): 88 global page0, checkbox0, checkbox1, label0 89 M5.update() 90 91 92if __name__ == "__main__": 93 try: 94 setup() 95 while True: 96 loop() 97 except (Exception, KeyboardInterrupt) as e: 98 try: 99 m5ui.deinit() 100 from utility import print_error_msg 101 102 print_error_msg(e) 103 except ImportError: 104 print("please update to latest firmware")
示例输出:
None
API参考
M5Checkbox
- class m5ui.checkbox.M5Checkbox(*args, **kwargs)
基类:
checkbox创建一个复选框对象。
- 参数:
UiFlow2 代码块:
None
MicroPython 代码块:
from m5ui import M5Checkbox import lvgl as lv m5ui.init() checkbox_0 = M5Checkbox(title="Check Me", value=True, x=10, y=10, title_c=0x2121, title_font=lv.font_montserrat_14, bullet_border_c=0x2196F3, bullet_bg_c=0xFFFFFF, parent=page0)
- set_flag(flag, value)
设置对象上的标志。如果
value为True,则添加标志;如果为False,则移除标志。UiFlow2 代码块:

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

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

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

MicroPython 代码块:
checkbox_0.toggle_state(lv.STATE.CHECKED)
- set_style_text_font(font, part)
设置复选框文本的字体。
- 参数:
font (lv.lv_font_t) – 要设置的字体。
part (int) – 要应用样式的对象部分(例如,lv.PART.MAIN)。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
checkbox_0.set_style_text_font(lv.font_montserrat_14, lv.PART.MAIN | lv.STATE.DEFAULT)
- set_text_color(color, opa, part)
设置复选框文本的颜色。
- 参数:
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
checkbox_0.set_text_color(lv.color_hex(0x000000), 255, lv.PART.MAIN | lv.STATE.DEFAULT) checkbox_0.set_text_color(lv.color_hex(0x000000), 255, lv.PART.MAIN | lv.STATE.CHECKED)
- set_bg_color(color, opa, part)
设置复选框指示器的背景颜色。
- 参数:
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
checkbox_0.set_bg_color(lv.color_hex(0xFFFFFF), 255, lv.PART.INDICATOR | lv.STATE.DEFAULT) checkbox_0.set_bg_color(lv.color_hex(0x2196F3), 255, lv.PART.INDICATOR | lv.STATE.CHECKED)
- set_border_color(color, opa, part)
设置复选框指示器的边框颜色。
- 参数:
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
checkbox_0.set_border_color(lv.color_hex(0x2196F3), 255, lv.PART.INDICATOR | lv.STATE.DEFAULT)
- set_pos(x, y)
设置复选框的位置。
UiFlow2 代码块:

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

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

MicroPython 代码块:
checkbox_0.set_y(100)
- set_size(width, height)
设置复选框的大小。
UiFlow2 代码块:

MicroPython 代码块:
checkbox_0.set_size(100, 50)
- set_width(width)
设置复选框的宽度。
- 参数:
width (int) – 复选框的宽度。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
checkbox_0.set_width(100)
- set_height(height)
设置复选框的高度。
- 参数:
height (int) – 复选框的高度。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
checkbox_0.set_height(50)
- align_to(obj, align, x, y)
将复选框对齐到另一个对象。
- 参数:
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
checkbox_0.align_to(page_0, lv.ALIGN.CENTER, 0, 0)
- set_style_radius(radius, part)
设置复选框指示器的圆角半径。
UiFlow2 代码块:

MicroPython 代码块:
checkbox_0.set_style_radius(10, lv.PART.INDICATOR | lv.STATE.DEFAULT)
- set_text(text)
设置复选框的文本。
- 参数:
text (str) – 要设置的文本。
- 返回:
None
UiFlow2 代码块:

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

MicroPython 代码块:
def checkbox_0_checked_event(event_struct): global checkbox_0 print("Checkbox checked!") def checkbox_0_unchecked_event(event_struct): global checkbox_0 print("Checkbox unchecked!") def checkbox_0_event_handler(event_struct): global checkbox_0 event = event_struct.code if event == lv.EVENT.VALUE_CHANGED and checkbox_0.has_state(lv.STATE.CHECKED): checkbox_0_checked_event(event_struct) elif event == lv.EVENT.VALUE_CHANGED and not checkbox_0.has_state(lv.STATE.CHECKED): checkbox_0_unchecked_event(event_struct) return checkbox_0.add_event_cb(checkbox_0_event_handler, lv.EVENT.ALL, None)



