M5Page
M5Page 是一个可用于在用户界面中创建页面的小部件。它可以用来组织其他小部件,并在不同页面之间提供导航。
UiFlow2 应用示例
页面事件
在 UiFlow2 中打开 cores3_page_event_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 13 14 15def page0_pressed_event(event_struct): 16 global page0 17 18 page0.set_bg_color(0x000000, 255, 0) 19 20 21def page0_released_event(event_struct): 22 global page0 23 24 page0.set_bg_color(0xFFFFFF, 255, 0) 25 26 27def page0_clicked_event(event_struct): 28 global page0 29 30 page0.set_bg_color(0x000000, 255, 0) 31 32 33def page0_long_pressed_event(event_struct): 34 global page0 35 36 page0.set_bg_color(0x000000, 255, 0) 37 38 39def page0_event_handler(event_struct): 40 global page0 41 event = event_struct.code 42 if event == lv.EVENT.PRESSED and True: 43 page0_pressed_event(event_struct) 44 if event == lv.EVENT.RELEASED and True: 45 page0_released_event(event_struct) 46 if event == lv.EVENT.CLICKED and True: 47 page0_clicked_event(event_struct) 48 if event == lv.EVENT.LONG_PRESSED and True: 49 page0_long_pressed_event(event_struct) 50 return 51 52 53def setup(): 54 global page0 55 56 M5.begin() 57 m5ui.init() 58 page0 = m5ui.M5Screen(bg_c=0xFFFFFF) 59 60 page0.add_event_cb(page0_event_handler, lv.EVENT.ALL, None) 61 62 page0.screen_load() 63 64 65def loop(): 66 global page0 67 M5.update() 68 69 70if __name__ == "__main__": 71 try: 72 setup() 73 while True: 74 loop() 75 except (Exception, KeyboardInterrupt) as e: 76 try: 77 m5ui.deinit() 78 from utility import print_error_msg 79 80 print_error_msg(e) 81 except ImportError: 82 print("please update to latest firmware")
示例输出:
None







