你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

实战经验 | TouchGFX 处理按钮长按的一种方法

[复制链接]
攻城狮Melo 发布时间:2024-2-20 09:01
实战经验 | TouchGFX 处理按钮长按的一种方法
目录预览
: D$ N% x7 A* M: C7 G; E7 W1、前言
1 ~" P5 ]8 L$ c) }6 K2、操作方法( l( _4 T7 c9 \
3、总结
01前言. q+ h/ A. r9 t5 ^! G0 S6 W. G+ ]

* z; A- H7 C5 q; A9 Z1 e

' k( j4 K5 t% {' ]' v0 N1 Q8 o在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。
% p2 T; U# Z/ ]6 Y& m' ?' D7 _3 s! T; v7 j/ Q8 H
02操作方法
# m3 c6 ?$ P! o: m+ z# n- m: T" w2 R- ]  t" ?+ d# x4 ^! w7 E
8 b% m  G9 R3 Y3 V  d
(1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。7 M- E' s6 s/ b4 z+ h
11.png
图1.Enable ClickListener

' e& x$ c# C5 u5 _  R启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。9 _5 I  t$ B1 S5 H1 w
12.png
(2)用户代码中实现回调2 m4 \* p9 ~3 L" _# X* L6 }! H
- t; n' L! y+ ^2 h% N; j
! k- Y6 m6 S) C+ }: K! D
在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。
4 m8 h9 b. l4 K: h; c" z( V9 f5 w0 I3 w. p; h# k6 H+ v. b. f9 k

' M5 J! [; h6 n5 y8 h* o# D, U回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。( S5 H  o3 I$ L1 [) H. `
13.png
然后,将回调函数的声明和回调函数的处理函数绑定到视图对象。
* m% o* {2 \. b3 _4 C+ _' w
14.png
下一步是通过 setClickAction()的方法告诉 Button1 这个 Widget,当它被按下时,去调用哪个回调函数。' Z) K# E1 q6 Q- F: Z# x
15.png
最后,实现回调函数的处理函数,同时可以根据需要自行增加按钮按下和释放时的处理。/ ]3 k2 q& i4 b2 j6 a
16.png

' F* b0 |/ B5 T* d(3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。0 Y9 U8 l. I$ z& j9 t$ u
17.png
(4)根据实际应用需求实现长按键的处理: b, `& E+ s! T$ d; L: T

1 {$ ^3 L0 [, O$ I: g8 _

7 |4 M2 q  i+ o在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。
$ v/ X$ ?; o& q' D
18.png
图2.长按前效果
19.png
图3.长按 3S 后效果

/ w5 t+ \8 M. K) w/ L/ n% s0 b$ T03总结- v9 _' m7 Q+ a

, N- H7 C, a- L' e本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。
" P* p/ |7 p, C+ Y5 E5 f- O+ _- X
/ Z, C- q- t* B7 z5 j6 A
收藏 评论1 发布时间:2024-2-20 09:01

举报

1个回答
xu@xupt 回答时间:2024-2-25 19:22:51

学习啦~~~

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版