Button

Button用于控制主机内部集成的按键。以下是主机的Button支持详细:

BtnA

BtnB

BtnC

BtnPWR

BtnEXT

AtomS3

AtomS3 Lite

AtomS3U

StampS3

CoreS3

Core2

TOUGH

MicroPython 应用示例:

import os, sys, io
import M5
from M5 import *

def btnPWR_wasClicked_event(state):
    global label0
    label0.setText('clicked')

def btnPWR_wasHold_event(state):
    global label0
    label0.setText('hold')

M5.begin()
Widgets.fillScreen(0x222222)
label0 = Widgets.Label("Text", 58, 43, 1.0, 0xffffff, 0x222222, Widgets.FONTS.DejaVu24)

BtnPWR.setCallback(type=BtnPWR.CB_TYPE.WAS_CLICKED, cb=btnPWR_wasClicked_event)
BtnPWR.setCallback(type=BtnPWR.CB_TYPE.WAS_HOLD, cb=btnPWR_wasHold_event)

while True:
    M5.update()

UiFlow2 应用示例:

example.png

button_cores3_example.m5f2

class Button

重要

Button 类的方法高度依赖于 M5.begin() M5.begin.pngM5.update() M5.update.png

所有对 Button 对象方法的调用都应放在 M5.begin() 之后,主循环中应调用 M5.update()M5.begin.png M5.update.png

Methods

Button.isHolding()

返回 Button 对象是否处于长按状态。

UiFlow2

isHolding.png

Button.isPressed()

返回 Button 对象是否处于按下状态。

UiFlow2

isPressed.png

Button.isReleased()

返回 Button 对象是否处于松开状态。

UiFlow2

isReleased.png

Button.wasClicked()

当 Button 对象被短暂按下并释放时返回 True。

UiFlow2

wasClicked.png

Button.wasDoubleClicked()

当 Button 对象被双击后经过一段时间后返回 True。

UiFlow2

wasDoubleClicked.png

Button.wasHold()

当 Button 对象被按住一段时间时返回 True。

UiFlow2

wasHold.png

Button.wasPressed()

当 Button 对象被按下时返回 True。

UiFlow2

wasPressed.png

Button.wasReleased()

当 Button 对象被松开时返回 True。

UiFlow2

wasReleased.png

Button.wasSingleClicked()

当 Button 对象被单击后经过一段时间后返回 True。

UiFlow2

wasSingleClicked.png

事件处理

Button.setCallback(type: Callback_Type, cb)

设置事件回调函数

UiFlow2

setCallback.png

Constants

Button.CB_TYPE

一个 Callback_Type 对象。

一个 Callback_Type 对象。

Constants

Callback_Type.WAS_CLICKED

单击事件类型。

Callback_Type.WAS_DOUBLECLICKED

双击事件类型。

Callback_Type.WAS_HOLD

长按事件类型。

Callback_Type.WAS_PRESSED

按下事件类型。

Callback_Type.WAS_RELEASED

发布事件类型