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

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

[复制链接]
攻城狮Melo 发布时间:2024-2-20 09:01
实战经验 | TouchGFX 处理按钮长按的一种方法
目录预览, H8 u6 w4 g9 s8 f! }: G! `0 |
1、前言
2 \; z. H; Z/ X& M; T0 t* _2、操作方法
2 V) R5 O# y3 m$ t0 r# L' z9 i3、总结
01前言# D, L: ^" q" J2 n# y8 w& s' [+ J

! }" f3 R6 ?+ z; ]+ }  k; \% D  K0 e

& K5 E1 h% N3 E+ \8 }3 H在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。( x% Q2 L- g. t9 G+ x8 i
: H/ H  M2 C" y. k/ T; M5 `0 Z
02操作方法- x/ R8 w' p2 F3 \2 x0 l/ J" A
  G- `! Q7 K+ y5 ?% w5 s

% R2 m* B/ x- x$ W7 Z6 }5 f. b' ~(1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。+ o, a" d- @3 w5 I
11.png
图1.Enable ClickListener
. p5 U$ p$ a, {7 L5 a
启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。& Y# \) C; u$ m
12.png
(2)用户代码中实现回调$ f  Z& D% X8 H

9 @. P6 B+ s, @

, U- E/ Z* F3 q3 C2 w' y在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。
+ h, K/ _5 i& T' A2 X) b3 U5 D
: ^, H$ B  l" ^- A, o9 j, }
4 [7 [; R) c8 q- \; U! w1 E4 Z
回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。. V9 v4 n2 K7 j. c& M
13.png
然后,将回调函数的声明和回调函数的处理函数绑定到视图对象。
. K7 v& J/ N# |( E
14.png
下一步是通过 setClickAction()的方法告诉 Button1 这个 Widget,当它被按下时,去调用哪个回调函数。0 Y4 R0 O7 k# y
15.png
最后,实现回调函数的处理函数,同时可以根据需要自行增加按钮按下和释放时的处理。* d* q/ }4 _  r% o
16.png
) m+ k& o0 F; d) v- f4 R
(3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。) R7 ?- m$ d8 C& a  Y5 D
17.png
(4)根据实际应用需求实现长按键的处理
! n# C1 a# e7 s  [- N. V) Y% o; J  O+ \8 x: q
9 V" J* j& c5 o0 \# `) R
在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。0 p/ r6 i" \9 _) j
18.png
图2.长按前效果
19.png
图3.长按 3S 后效果

' b7 n- l5 F( `1 ?- e03总结
3 b* a9 B2 f8 q9 Z) e9 G, ~+ C- H3 m% [
! E7 X- q& O+ F9 A4 E+ I& d本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。
5 A9 r, u6 ~% w" w  N& Z' ^$ S1 e$ W! y$ Q1 {
收藏 评论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 手机版