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

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

[复制链接]
攻城狮Melo 发布时间:2024-2-20 09:01
实战经验 | TouchGFX 处理按钮长按的一种方法
目录预览* V8 ]3 H. B4 F: S! v# W' b
1、前言
3 {0 z# F& W" z* n* d0 y5 g: Z2、操作方法9 g+ s$ P" f& ]
3、总结
01前言% W$ J# S  a% C$ O$ C& i/ L
' V! s3 g) Z& s$ W; T" @
* O" C) |' h9 l) J# f
在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。
5 }4 B( X2 h7 ]5 g, g) e2 y1 {$ h* p3 X! q" m
02操作方法
6 u6 d' _  p# ~; e8 y* [4 f
0 Y! ?6 V. W+ A4 R* j
  g) p: m2 i! f5 M- Q! {
(1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。
$ W9 a& w0 g$ B7 X) a; s9 S, |. u
11.png
图1.Enable ClickListener
; r7 X1 x9 S7 E) s$ p+ s
启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。+ o8 ^$ X$ z2 z4 M1 ?9 M! Y
12.png
(2)用户代码中实现回调9 U! `* T/ {* ]5 ^, V6 R+ e

# s$ X9 N* {& o3 H% P  v( f$ t
0 d1 [. g6 k# R& x+ J/ U
在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。( C1 Z3 L. Y/ M2 T, u3 G! _

' \5 ]* p" A* N1 ]& p7 m- r: b
' T) h1 [6 h( i6 x
回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。
* k& g: R7 Q7 g( k  L' G, X2 q; p
13.png
然后,将回调函数的声明和回调函数的处理函数绑定到视图对象。
3 f$ L% U3 C, |$ \
14.png
下一步是通过 setClickAction()的方法告诉 Button1 这个 Widget,当它被按下时,去调用哪个回调函数。
" s9 e* I1 N/ S& A- U5 ]
15.png
最后,实现回调函数的处理函数,同时可以根据需要自行增加按钮按下和释放时的处理。1 o$ c1 Y! s# k4 X5 s! {9 e
16.png
! l" h! K7 U) Z( A4 r, n
(3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。; i% G3 L+ w& a! \. {) h, B" h7 `
17.png
(4)根据实际应用需求实现长按键的处理0 [+ P% T6 _. E6 A  u4 O" h

0 l0 s& g9 {# Y0 O
; }* s/ A7 d$ ~' J2 ?7 _0 N% Z$ N
在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。: X+ J8 K2 K* }- u/ r$ q- ~( X+ l
18.png
图2.长按前效果
19.png
图3.长按 3S 后效果

; g" v- s0 m+ W. X0 C$ k03总结
' Y' W' {: h5 w7 ]$ K
; u% j# ^. N0 i1 U7 u% ~# z* R本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。& k+ A( n$ B6 N0 a
) K3 V7 U5 ]3 V: N0 [8 W# |
收藏 评论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 手机版