实战经验 | TouchGFX 处理按钮长按的一种方法 目录预览7 W, S* w7 k7 q6 A. z 8 F+ b3 \3 [: z 在使用 TouchGFX 设计 UI 界面时,用同一按钮的长按和短按表示不同的功能是个比较常见的实际需求。普通的 Button 控件可以通过 Interactions 处理一些基本的交互动作,通过下面一些简单的操作,我们可以将这个普通的 Button 改造成可以根据不同的按键时间处理不同事务的多功能按钮。5 s9 L$ T/ x, |1 {0 ?% T" d : j3 v2 D! K9 m& f) \% B( ~ 02操作方法 % M7 r7 G, p4 n* D3 S$ @1 V9 S) ` . F! j5 T1 G9 @3 X (1)创建一个按钮,并在 Mixins 中勾选 ClickListener 功能,使 Button 能够响应触控输入。7 C2 u. f8 e% @. C2 B( G 图1.Enable ClickListener ) ?) m) E) I J启用 ClickListener Mixin 后,会更改生成的控件的声明,下面的代码表示 button1 启用了 ClickListener Mixin。% S# c! ?1 |, I3 @, H* C/ F3 x1 \$ M 3 r% o& `# h" _ 在 TouchGFX Designer 中对 Button 控件启用 ClickListener Mixin 后,下一步是在这个 Button 所在的 Screen 的头文件中添加控件的 Click 的回调和其回调处理函数的声明。7 c1 `) A; u( W9 n4 X6 s9 ? 回调函数的声明应包含以下三点内容:要绑定的类名,此例中为 Screen1View;回调来自哪个Widget,此处为 Button;以及发生事件的类型 ClickEvent。- C, x4 H" [' ?3 V; r% |+ k/ I (3)添加 handleTickEvent()声明和定义,用于处理计时相关逻辑,此函数以 60Hz 的频率被TouchGFX 引擎调用。 % |) g: Q- m) |, t8 u B 在我们的测试例程中,实现了三秒长按键后,切换 Text 文本显示的功能,如下。/ w- A& d7 i ], D, O. F 图2.长按前效果 图3.长按 3S 后效果 03总结 % {/ j0 B, s% m3 R 本文解释了如何通过 ClickListener 实现对按钮控件自定义功能,实际应用中大多数的Widgets 以及 View 本身都可以通过 ClickListener 实现点击和释放时的自定义处理。 5 z( T$ F' a( O. [- G T! _1 K |
TouchGFX 4.23:支持矢量字体,节省Flash,更丰富的UI!
【STM32U599】5.聊聊手表菜单
【STM32U599】6.界面切换
【STM32U599】3.写个表盘
【STM32U599】4.引入RTC与MVP开发
TouchGFX界面开发应该知道的 C++基础(2)
TouchGFX界面开发应该知道的 C++基础(1)
【学习有奖】一大波TouchGFX 实操视频来袭,快速提升你的GUI技能
TouchGFX 4.22解锁新功能:实时标注,L8图像压缩,离线模式
学习啦~~~