触摸
Touch 类提供用于读取触摸坐标、触点数量以及带触摸屏的 M5Stack 设备上详细触摸信息的方法。
UiFlow2 应用示例
获取触摸坐标
在 UiFlow2 中打开 cores3_touch_example.m5f2 工程。
该示例演示如何获取触摸事件的 X 和 Y 坐标并将其显示在屏幕上。
UiFlow2 代码块:
示例输出:
屏幕会显示当前触摸事件的 X 和 Y 坐标。
MicroPython 应用示例
获取触摸坐标
该示例演示如何获取触摸事件的 X 和 Y 坐标并将其显示在屏幕上。
MicroPython 代码块:
1# SPDX-FileCopyrightText: 2026 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8 9 10label0 = None 11label1 = None 12 13 14cur_x = None 15cur_y = None 16 17 18def setup(): 19 global label0, label1, cur_x, cur_y 20 21 M5.begin() 22 Widgets.setRotation(1) 23 Widgets.fillScreen(0x222222) 24 label0 = Widgets.Label("x: 0", 32, 41, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 25 label1 = Widgets.Label("y: 0", 33, 84, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18) 26 27 28def loop(): 29 global label0, label1, cur_x, cur_y 30 M5.update() 31 if M5.Touch.getCount(): 32 cur_x = M5.Touch.getX() 33 cur_y = M5.Touch.getY() 34 label0.setText(str((str("x: ") + str(cur_x)))) 35 label1.setText(str((str("y: ") + str(cur_y)))) 36 37 38if __name__ == "__main__": 39 try: 40 setup() 41 while True: 42 loop() 43 except (Exception, KeyboardInterrupt) as e: 44 try: 45 from utility import print_error_msg 46 47 print_error_msg(e) 48 except ImportError: 49 print("please update to latest firmware")
示例输出:
屏幕会显示当前触摸事件的 X 和 Y 坐标。
API参考
触摸
- class M5.Touch
- getX()
获取当前触摸点的 X 坐标。
- 返回:
int - X 坐标。
UiFlow2 代码块:

MicroPython 代码块:
x = M5.Touch.getX()
- getY()
获取当前触摸点的 Y 坐标。
- 返回:
int - Y 坐标。
UiFlow2 代码块:

MicroPython 代码块:
y = M5.Touch.getY()
- getCount()
获取当前触点数量。
- 返回:
int - 当前有效触点数量(无触摸时为 0)。
UiFlow2 代码块:

MicroPython 代码块:
count = M5.Touch.getCount()
- getDetail(index=0)
获取指定触点的详细信息。
- 参数:
index (int) – 触点索引(默认值为 0)。
- 返回:
元组 - 一个包含 11 个元素的元组,提供触摸状态的详细信息:
[0] deltaX(int):自上次测量以来在 X 轴上的位移差;[1] deltaY(int):自上次测量以来在 Y 轴上的位移差;[2] distanceX(int):自触摸开始以来在 X 轴上的累计移动距离;[3] distanceY(int):自触摸开始以来在 Y 轴上的累计移动距离;[4] isPressed(bool):当前是否处于按下状态;[5] wasPressed(bool):是否刚刚变为按下状态;[6] wasClicked(bool):是否刚刚完成一次点击;[7] isReleased(bool):当前是否处于释放状态;[8] wasReleased(bool):是否刚刚从按下变为释放状态;[9] isHolding(bool):当前是否处于长按保持状态;[10] wasHold(bool):是否曾经处于长按保持状态。
MicroPython 代码块:
detail = M5.Touch.getDetail(0)


