|
实战经验 | TouchGFX 处理按钮长按的一种方法 目录预览1 u/ ]2 n7 A; ]% t+ Q! p " Z8 r" d, F9 N" K( ?& Q 在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。 " O- f. ?& W) H8 y) ] 02操作方法 4 J0 |1 q0 _/ D$ D# S7 \) d A * y9 q2 H) I# A+ f (1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。
图1.Enable ClickListener ' @ v( C. o5 `2 j+ }. w启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。
在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。6 u1 V9 y! p" \$ c / b4 }) h. i# W8 }- F, H3 P 回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。3 @) _% U( ?8 h6 r: K
(3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。2 X! g) G% C/ H5 \* g/ O% G- J& o
2 U) e4 i9 k3 V+ v ! h. \/ t. J* l4 J) e 在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。/ a! R, p5 k4 i5 `1 I
图2.长按前效果
图3.长按 3S 后效果 1 R+ Q, i$ D. e9 `0 F03总结 5 _. s+ R) X3 ~8 a8 q1 q5 u 本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。7 ]8 M4 f' ~" f4 Q# a3 N : O1 I5 z* u8 j7 x0 C |
#双节活动 3.touchGFX生成的MDK工程并不完美
#双节活动 1.在CubeMX中引用touchGFX出现的问题与解决
4-开发生态篇:TouchGFX+STM32Cube 一站式 GUI 落地流程
三种方法精准计算 TouchGFX FPS,搞定界面流畅性检测
经验分享 | LAT1478 TouchGFX FPS的计算方法
TouchGFX开发STM32F429程序
好用软件推荐-TouchGFX Designer
广州/南京 | STM32GUI图形界面应用开发实训(基于STM32H7R7/S7 + TouchGFX开发平台)
TouchGFX升级至4.26版本:持续进化,为STM32嵌入式GUI开发降本提效
【2025·STM32峰会】+TouchGFX实现动态进度显示以及界面切换
微信公众号
手机版
学习啦~~~