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

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

[复制链接]
攻城狮Melo 发布时间:2024-2-20 09:01
实战经验 | TouchGFX 处理按钮长按的一种方法
目录预览
! y7 r+ A& K8 }( \  F' E1、前言
% P* G5 i$ T* H% W/ ?9 F2、操作方法- m, @7 l( ^1 g, b- s2 @% c
3、总结
01前言
) `$ t5 x) T4 U1 s3 y- H
. X+ h! @9 y- o/ N$ D6 S) q3 `4 b8 ?

6 f8 r1 K  U: g' v在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。, }6 G7 R1 T& w' [
) N- Q! h5 `" g* K9 y
02操作方法, @6 n* ^- D$ D# {7 J, p
8 k. e* S+ D3 T$ G" m

9 d; \& @" P- ]5 T/ Q. L' W(1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。
$ ^# D( A0 @8 a2 v: H$ I
11.png
图1.Enable ClickListener

) R/ a& C, ~4 |4 Y# D. O& J: V6 \启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。9 U! j! Q+ j% b( I
12.png
(2)用户代码中实现回调5 P, I* }# Y. \" B; g( n
1 O# e2 C/ g7 R/ Q  q* n

7 x+ _2 D8 U2 \1 n9 i  [在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。5 i" V" h/ \4 o+ {6 K; {+ Z

. I# N8 j! M. l: C
; S, f4 x% w& x$ v
回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。; H0 l  B4 d  _3 f* b7 t
13.png
然后,将回调函数的声明和回调函数的处理函数绑定到视图对象。
( r! k* b+ O% \* f
14.png
下一步是通过 setClickAction()的方法告诉 Button1 这个 Widget,当它被按下时,去调用哪个回调函数。
& L8 \  L7 u/ z) n. i. v/ l
15.png
最后,实现回调函数的处理函数,同时可以根据需要自行增加按钮按下和释放时的处理。
! s7 [, o. r- b
16.png

, Y& Y* u* f2 F2 [" E1 A  y(3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。
* g7 c: Q. ]0 r6 ?# y; `; V8 h
17.png
(4)根据实际应用需求实现长按键的处理
" M) D3 l% f* I( s7 c" c# T5 d# ?2 q% p5 W# |: t+ \

7 M: {' Y% }6 O. V在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。
! P! `$ I+ Q/ ]2 b" S7 f
18.png
图2.长按前效果
19.png
图3.长按 3S 后效果

/ ~& j& M8 x- ]5 a; _8 F. {03总结
8 h4 h7 W. u( }$ J3 S' i/ f: Y
3 b7 @+ ?- [& r; u7 [$ O本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。$ l5 D( b# f* K4 x; J7 ~: z5 H6 N
& |* o% }; U, G$ D9 l+ d- g
收藏 评论1 发布时间:2024-2-20 09:01

举报

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

学习啦~~~

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版