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

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

[复制链接]
攻城狮Melo 发布时间:2024-2-20 09:01
实战经验 | TouchGFX 处理按钮长按的一种方法
目录预览
/ m  S# j1 G& C: H! U7 ~1、前言8 l" C% q/ w4 K8 u) T
2、操作方法- Y) {; l. ?0 e; T6 s8 e
3、总结
01前言
& ]0 D1 B4 R% T0 B& a* u" l+ Z1 k; A  Q! ~: c

* l+ q* I2 F2 j2 O  ]在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。
! x8 V2 J7 y# Q6 K: h: u
5 m  t1 w3 o: ?$ T02操作方法  G; G8 K' p- _- l9 V$ g0 b% y
* ]5 r. W! z% `, y1 m1 X: d
( e- w3 Q) \( H( y- |! H5 e
(1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。! c7 [  F$ P# N0 a& D$ x
11.png
图1.Enable ClickListener

4 a0 x! _2 `7 B' C3 k启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。% [% r- P* f& g, I9 b7 j
12.png
(2)用户代码中实现回调) }) _: G; U' M7 l7 _! d$ V4 y

/ R7 L2 \1 l2 n' ^& z2 K7 T# D# S

" L/ G( p1 J6 u- @# t& K6 G/ Z4 M! Z在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。* y$ O& k% }/ f8 T# G7 |/ Q) a
: t' f$ @/ @  ^* \# D3 g3 E

4 L& p5 x# s9 M5 F' M. u回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。
: E# T# X- s" R" E
13.png
然后,将回调函数的声明和回调函数的处理函数绑定到视图对象。
1 s2 [2 |3 j: o3 q* x- C
14.png
下一步是通过 setClickAction()的方法告诉 Button1 这个 Widget,当它被按下时,去调用哪个回调函数。
7 d- l9 Y( K" m0 o8 w4 f% o
15.png
最后,实现回调函数的处理函数,同时可以根据需要自行增加按钮按下和释放时的处理。% E  u4 I  H  X: f) _; C' ]
16.png
1 T9 ?) u- u8 ?
(3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。) i; ]/ }7 a9 \. [
17.png
(4)根据实际应用需求实现长按键的处理$ q5 ~9 c7 A0 y& V9 n
; d: A# ?$ }" z8 Q! k1 w
3 X8 |6 x* k3 K, i; a/ ^- l
在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。% V+ a! G: G/ h. H. k) {" R( a# }# z7 `
18.png
图2.长按前效果
19.png
图3.长按 3S 后效果

, l: r! i& m! z2 B: M3 B+ U03总结
- i  @$ t* b: q7 g; c3 m% j- R8 c8 d) [) r. e4 Q$ s: p9 C* z
本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。
$ G" f; K, R4 v; i3 O2 s( e
+ u  j! ~. v) [/ x
收藏 评论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 手机版