M5Bar
M5Bar 是一个可用于在用户界面中创建进度条的小部件。它使用可视的进度条指示器显示指定范围内的值。进度条可以自定义颜色和渐变,并可选择将当前值显示为文本。
UiFlow2 应用示例
温度计
在 UiFlow2 中打开 cores3_temperature_meter_example.m5f2 项目。
此示例演示如何创建显示当前温度的温度计。
UiFlow2 代码块:
示例输出:
无
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 10from hardware import I2C 11from hardware import Pin 12from unit import ENVPROUnit 13import time 14 15 16page0 = None 17bar0 = None 18label0 = None 19i2c0 = None 20envpro_0 = None 21 22 23def setup(): 24 global page0, bar0, label0, i2c0, envpro_0 25 26 M5.begin() 27 Widgets.setRotation(1) 28 m5ui.init() 29 page0 = m5ui.M5Page(bg_c=0xFFFFFF) 30 bar0 = m5ui.M5Bar( 31 x=148, 32 y=21, 33 w=20, 34 h=200, 35 min_value=0, 36 max_value=50, 37 value=25, 38 bg_c=0x2193F3, 39 color=0x2193F3, 40 parent=page0, 41 ) 42 label0 = m5ui.M5Label( 43 "label0", 44 x=181, 45 y=112, 46 text_c=0x000000, 47 bg_c=0xFFFFFF, 48 bg_opa=0, 49 font=lv.font_montserrat_14, 50 parent=page0, 51 ) 52 53 i2c0 = I2C(0, scl=Pin(1), sda=Pin(2), freq=100000) 54 envpro_0 = ENVPROUnit(i2c0) 55 page0.screen_load() 56 bar0.set_bg_grad_color( 57 0xFF0000, 255, 0x0000FF, 255, lv.GRAD_DIR.VER, lv.PART.INDICATOR | lv.STATE.DEFAULT 58 ) 59 60 61def loop(): 62 global page0, bar0, label0, i2c0, envpro_0 63 M5.update() 64 bar0.set_value(int(envpro_0.get_temperature()), True) 65 label0.set_text(str(envpro_0.get_temperature())) 66 time.sleep(1) 67 68 69if __name__ == "__main__": 70 try: 71 setup() 72 while True: 73 loop() 74 except (Exception, KeyboardInterrupt) as e: 75 try: 76 m5ui.deinit() 77 from utility import print_error_msg 78 79 print_error_msg(e) 80 except ImportError: 81 print("please update to latest firmware")
示例输出:
无
API参考
M5Bar
- class m5ui.bar.M5Bar(*args, **kwargs)
基类:
bar初始化一个新的 M5Bar 控件。
- 参数:
- 返回:
无
UiFlow2 代码块:
无
MicroPython 代码块:
bar = M5Bar(x=50, y=50, w=200, h=30, min_value=0, max_value=100, value=50)
- get_value()
获取进度条的当前值。
- 返回:
进度条的当前值。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
current_value = bar.get_value()
- get_min_value()
获取进度条范围的最小值。
- 返回:
最小值。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
min_val = bar.get_min_value()
- get_max_value()
获取进度条范围的最大值。
- 返回:
最大值。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
max_val = bar.get_max_value()
- set_flag(flag, value)
在对象上设置一个标志。如果 value 为 True,则添加该标志;如果 value 为 False,则移除该标志。
UiFlow2 代码块:

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

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

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

MicroPython 代码块:
bar.toggle_state(lv.STATE.PRESSED)
- set_bg_color(color, opa, part)
设置进度条的背景颜色。
UiFlow2 代码块:


MicroPython 代码块:
bar.set_bg_color(lv.color_hex(0x000000), 255, lv.PART.MAIN | lv.STATE.DEFAULT) bar.set_bg_color(lv.color_hex(0x000000), 255, lv.PART.INDICATOR | lv.STATE.DEFAULT)
- set_bg_grad_color(color, opa, grad_color, grad_opd, grad_dir, part)
设置条形的背景渐变颜色。
- 参数:
- 返回:
无
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)
- set_pos(x, y)
设置进度条的位置。
UiFlow2 代码块:

MicroPython 代码块:
bar.set_pos(100, 100)
- set_size(width, height)
设置进度条的尺寸。
UiFlow2 代码块:

MicroPython 代码块:
bar.set_size(200, 30)
- set_width(width)
设置进度条的宽度。
- 参数:
width (int) – 进度条的宽度。
- 返回:
无
UiFlow2 代码块:

MicroPython 代码块:
bar.set_width(200)
- set_height(height)
设置进度条的高度。
- 参数:
height (int) – 进度条的高度。
- 返回:
无
UiFlow2 代码块:

MicroPython 代码块:
bar.set_height(30)
- get_height()
获取进度条的高度。
- 返回:
进度条的高度。
- 返回类型:
UiFlow2 代码块:

MicroPython 代码块:
height = bar.get_height()
- align_to(obj, align, x, y)
将进度条对齐到另一个对象。
- 参数:
- 返回:
无
UiFlow2 代码块:

MicroPython 代码块:
bar.align_to(page_0, lv.ALIGN.CENTER, 0, 0)
- set_value(value, anim=False)
设置进度条的当前值。
UiFlow2 代码块:

MicroPython 代码块:
bar.set_value(75, True)




