M5Msgbox
M5Msgbox 是一个用于在用户界面中创建msgbox的组件。
UiFlow2 示例
msgbox事件
在 UiFlow2 中打开 msgbox_core2_example.m5f2 项目。
本示例创建msgbox并关联事件。
UiFlow2 代码块:
示例输出:
None
MicroPython 应用示例
msgbox事件
本示例创建msgbox并关联事件。
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 13msgbox0 = None 14label_sfu = None 15btn_apply = None 16btn_cancel = None 17 18 19import random 20 21 22def btn_apply_clicked_event(event_struct): 23 global page0, msgbox0, label_sfu, btn_apply, btn_cancel 24 25 label_sfu.set_text(str((str("Hello ") + str((random.randint(1, 100)))))) 26 27 28def btn_cancel_clicked_event(event_struct): 29 global page0, msgbox0, label_sfu, btn_apply, btn_cancel 30 31 btn_apply.toggle_flag(lv.obj.FLAG.HIDDEN) 32 33 34def btn_apply_event_handler(event_struct): 35 global page0, msgbox0, label_sfu, btn_apply, btn_cancel 36 event = event_struct.code 37 if event == lv.EVENT.CLICKED and True: 38 btn_apply_clicked_event(event_struct) 39 return 40 41 42def btn_cancel_event_handler(event_struct): 43 global page0, msgbox0, label_sfu, btn_apply, btn_cancel 44 event = event_struct.code 45 if event == lv.EVENT.CLICKED and True: 46 btn_cancel_clicked_event(event_struct) 47 return 48 49 50def setup(): 51 global page0, msgbox0, label_sfu, btn_apply, btn_cancel 52 53 M5.begin() 54 Widgets.setRotation(1) 55 m5ui.init() 56 page0 = m5ui.M5Page(bg_c=0xFFFFFF) 57 msgbox0 = m5ui.M5Msgbox(title="Message Box", x=0, y=0, w=320, h=240, parent=page0) 58 label_sfu = msgbox0.add_text("This is label_sfu") 59 btn_apply = msgbox0.add_button(text="Apply", option="footer") 60 btn_cancel = msgbox0.add_button(text="Cancel", option="footer") 61 msgbox0.add_close_button() 62 63 btn_apply.add_event_cb(btn_apply_event_handler, lv.EVENT.ALL, None) 64 btn_cancel.add_event_cb(btn_cancel_event_handler, lv.EVENT.ALL, None) 65 66 page0.screen_load() 67 68 69def loop(): 70 global page0, msgbox0, label_sfu, btn_apply, btn_cancel 71 M5.update() 72 73 74if __name__ == "__main__": 75 try: 76 setup() 77 while True: 78 loop() 79 except (Exception, KeyboardInterrupt) as e: 80 try: 81 m5ui.deinit() 82 from utility import print_error_msg 83 84 print_error_msg(e) 85 except ImportError: 86 print("please update to latest firmware")
示例输出:
None
API参考
M5Msgbox
- class m5ui.msgbox.M5Msgbox(*args, **kwargs)
基类:
msgbox创建一个msgbox对象。
- 参数:
MicroPython 代码块:
from m5ui import M5Msgbox import lvgl as lv m5ui.init() msgbox_0 = M5Msgbox( title="msgbox", x=0, y=0, w=320, h=240, parent=page0, )
- add_close_button()
为msgbox头部添加关闭按钮。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
msgbox_0.add_close_button()
- delete()
从msgbox中删除项目。
UiFlow2 代码块:


MicroPython 代码块:
button_0.delete() text_0.delete()
- set_text(txt)
设置msgbox按钮/标签的文本。
- 参数:
txt (str) – 要为msgbox按钮/标签设置的文本。
- 返回:
None
UiFlow2 代码块:


MicroPython 代码块:
button_0.set_text("Select an option") label_0.set_text("M5Stack")
- set_style_text_font(font, part)
设置msgbox按钮/标签文本的字体。
- 参数:
font (lv.lv_font_t) – 要设置的字体。
part (int) – 要应用样式的对象部分(例如 lv.PART.MAIN)。
- 返回:
None
UiFlow2 代码块:


MicroPython 代码块:
label_0.set_style_text_font(lv.font_montserrat_14, lv.PART.MAIN | lv.STATE.DEFAULT) button_0.set_style_text_font(lv.font_montserrat_14, lv.PART.MAIN | lv.STATE.DEFAULT)
- set_text_color(color, opa, part)
设置msgbox按钮/标签的颜色。
UiFlow2 代码块:


MicroPython 代码块:
button_0.set_text_color(lv.color_hex(0x000000), 255, lv.PART.MAIN | lv.STATE.DEFAULT) label_0.set_text_color(lv.color_hex(0x000000), 255, lv.PART.MAIN | lv.STATE.DEFAULT)
- set_bg_color(color, opa, part)
设置msgbox按钮/标签的背景颜色。
UiFlow2 代码块:


MicroPython 代码块:
button_0.set_bg_color(lv.color_hex(0x000000), 255, lv.PART.MAIN | lv.STATE.DEFAULT) label_0.set_bg_color(lv.color_hex(0x000000), 255, lv.PART.MAIN | lv.STATE.DEFAULT)
- set_long_mode(mode)
设置msgbox标签的长文本模式。
- 参数:
mode (int) – 要设置的长文本模式。
UiFlow2 代码块:

MicroPython 代码块:
label_0.set_long_mode(lv.label.LONG_MODE.WRAP)
- set_flag(flag, value)
在对象上设置标志。如果
value为 True,则添加该标志;为 False 时移除该标志。UiFlow2 代码块:



MicroPython 代码块:
msgbox_0.set_flag(lv.obj.FLAG.HIDDEN, True)
- set_pos(x, y)
设置msgbox的位置。
UiFlow2 代码块:

MicroPython 代码块:
msgbox_0.set_pos(100, 100)
- set_x(x)
设置msgbox的 x 坐标。
- 参数:
x (int) – msgbox的 x 坐标。
UiFlow2 代码块:

MicroPython 代码块:
msgbox_0.set_x(100)
- set_y(y)
设置msgbox的 y 坐标。
- 参数:
y (int) – msgbox的 y 坐标。
UiFlow2 代码块:

MicroPython 代码块:
msgbox_0.set_y(100)
- set_size(width, height)
设置msgbox的尺寸。
UiFlow2 代码块:

MicroPython 代码块:
msgbox_0.set_size(100, 50)
- align_to(obj, align, x, y)
将msgbox对齐到其他对象。
- 参数:
UiFlow2 代码块:

MicroPython 代码块:
msgbox_0.align_to(page_0, lv.ALIGN.CENTER, 0, 0)
- set_state(state, value)
设置进度条的状态。如果
value为 True,则设置状态;为 False 时取消状态。UiFlow2 代码块:

MicroPython 代码块:
msgbox_0.set_state(lv.STATE.PRESSED, True)
- toggle_flag(flag)
切换对象上的标志。如果该标志已设置,则移除;否则添加。
- 参数:
flag (int) – 要切换的标志。
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
msgbox_0.toggle_flag(lv.obj.FLAG.HIDDEN)
- set_style_radius(radius, part)
设置msgbox按钮的圆角半径。
UiFlow2 代码块:

MicroPython 代码块:
button_0.set_style_radius(10, lv.PART.MAIN | lv.STATE.DEFAULT)
- set_shadow(color, opa, align, offset_x, offset_y)
为标签设置阴影。
- 参数:
- 返回:
None
UiFlow2 代码块:

MicroPython 代码块:
label_0.set_shadow(color=0x000000, opa=128, align=lv.ALIGN.BOTTOM_RIGHT, offset_x=5, offset_y=5)
- unset_shadow()
移除标签的阴影。
UiFlow2 代码块:

MicroPython 代码块:
label_0.unset_shadow()
- get_text()
获取标签的文本。
- 返回:
标签的文本内容。
- 返回类型:
UiFlow2 代码块:


MicroPython 代码块:
label_0.get_text() button_0.get_text()
- toggle_state(state)
切换按钮的状态。如果该状态已设置则取消设置,未设置则添加设置。
- 参数:
state (int) – 要切换的状态。
- 返回:
None
UiFlow2 代码块:

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

MicroPython 代码块:
def btn_ono_clicked_event(event_struct): global page0, msgbox_0, label_lkg, btn_ono, btn_pjm, label0 print('hello M5') def btn_ono_event_handler(event_struct): global page0, msgbox_0, label_lkg, btn_ono, btn_pjm, label0 event = event_struct.code if event == lv.EVENT.CLICKED and True: btn_ono_clicked_event(event_struct) return btn_ono.add_event_cb(btn_ono_event_handler, lv.EVENT.ALL, None)
- add_text(text, text_c=2171169, text_opa=255, bg_c=16777215, bg_opa=255, font=lvgl.font_montserrat_14)
向msgbox添加文本标签。
- 参数:
- 返回:
创建的标签对象。
- 返回类型:
m5ui.M5Label
UiFlow2 代码块:


MicroPython 代码块:
text0 = msgbox_0.add_text( text="Hello World", text_c=0x212121, text_opa=255, bg_c=0xFFFFFF, bg_opa=255, font=lv.font_montserrat_14, )
- add_button(icon=None, text='', bg_c=2201331, bg_opa=255, text_c=16777215, text_opa=255, font=lvgl.font_montserrat_14, option='footer')
向msgbox添加按钮。
- 参数:
- 返回:
创建的按钮对象。
- 返回类型:
m5ui.M5Button
UiFlow2 代码块:


MicroPython 代码块:
button0 = msgbox_0.add_button( icon=None, text="OK", bg_c=0x2196F3, bg_opa=255, text_c=0xFFFFFF, text_opa=255, font=lv.font_montserrat_14, option="footer", )
