
实战经验 | TouchGFX 处理按钮长按的一种方法 目录预览* V8 ]3 H. B4 F: S! v# W' b ' V! s3 g) Z& s$ W; T" @ * O" C) |' h9 l) J# f 在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。 2 y1 {$ h* p3 X! q" m 02操作方法 g) p: m2 i! f5 M- Q! { (1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。 ![]() 图1.Enable ClickListener ; r7 X1 x9 S7 E) s$ p+ s启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。+ o8 ^$ X$ z2 z4 M1 ?9 M! Y ![]() 0 d1 [. g6 k# R& x+ J/ U 在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。( C1 Z3 L. Y/ M2 T, u3 G! _ ' T) h1 [6 h( i6 x 回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。 ![]() ![]() ![]() ![]() (3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。; i% G3 L+ w& a! \. {) h, B" h7 ` ![]() ; }* s/ A7 d$ ~' J2 ?7 _0 N% Z$ N 在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。: X+ J8 K2 K* }- u/ r$ q- ~( X+ l ![]() 图2.长按前效果 ![]() 图3.长按 3S 后效果 03总结 本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。& k+ A( n$ B6 N0 a ) K3 V7 U5 ]3 V: N0 [8 W# | |
实验经验 | LTDC RGB 接口 LCD TouchGFX 工程的移植步骤
实战经验 | 基于STM32CubeIDE下载TouchGFX GUI应用的出错分析
《如何使用TouchGFX》视频课程上线啦:助力你的GUI设计
TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI!
【STM32H7S78-DK】汽车仪表系统
【STM32H7S78-DK评测】TouchGFX (QR Code)二维码生成器
基于STM32实现“单芯片”模式:TouchGFX 4.24 的创新分析
【STM32U599】5.聊聊手表菜单
【STM32U599】6.界面切换
【STM32U599】3.写个表盘
学习啦~~~