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

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

[复制链接]
攻城狮Melo 发布时间:2024-2-20 09:01
实战经验 | TouchGFX 处理按钮长按的一种方法
目录预览
' C$ a. j1 t( K" K/ K1、前言
  s" w! N( M, p* S1 {. ?3 m6 b2、操作方法
/ v% {5 W' {: i* ~3 Z3、总结
01前言
% z' E8 L; O6 |" S7 j! g/ I" s: m8 F% N" ~9 `. N9 s5 X

3 a! l8 Q* H7 C: {在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。0 k7 I  f8 u) s* g

- O9 H* h0 m1 B" Z" V" v# d3 d02操作方法" W6 Y4 T( _' l2 c. p% r+ E/ ^

9 e2 U' _! R! O$ G; c1 T; {
. E" e1 [8 h0 e) m# L$ z
(1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。7 Z8 V; l% T. X# g2 a4 x* Q' F5 \
11.png
图1.Enable ClickListener

) @. K7 G( c. g7 }3 g6 g/ G! _启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。
) O& y# E* k3 [+ h9 M4 V6 S
12.png
(2)用户代码中实现回调5 N: U# O% M  o0 b7 C! K
  d8 D5 D2 I  W- v7 c: o' }6 x
0 \% A" R/ a7 H: h
在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。3 V1 d1 `/ Z; |% h; f/ L1 M

# ^# C3 v# q& z

1 z" ~+ M: _& _# ]& t, ~: x回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。) e6 L# ~, P4 q: r
13.png
然后,将回调函数的声明和回调函数的处理函数绑定到视图对象。
$ q2 o3 E# ?( y) r7 ]' l
14.png
下一步是通过 setClickAction()的方法告诉 Button1 这个 Widget,当它被按下时,去调用哪个回调函数。! ?# B, ~; z4 B) X' [. W$ e
15.png
最后,实现回调函数的处理函数,同时可以根据需要自行增加按钮按下和释放时的处理。
5 F- b9 }& ~9 ]8 e
16.png

" E& H, ]& Y/ W6 ](3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。
) L7 H4 N3 r( v4 T2 B4 V* i
17.png
(4)根据实际应用需求实现长按键的处理
* Y) X& V  e. f3 b  V2 I+ K/ }6 \& ]4 k/ I# ]" J

, d- q' N6 U/ \& F- h) p在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。' g- g1 P5 Y; [; j1 ]
18.png
图2.长按前效果
19.png
图3.长按 3S 后效果
* A8 n1 n0 [3 i# ~4 Q: n
03总结" @; q4 l' g. \  ^, w) k* F

! U& M0 c# i9 S5 i本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。
' h4 Y3 O. H+ `& U: s9 a. O) \4 {" J5 R! s
收藏 评论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 手机版