在Touch GFX4.24中新增了几个功能,其中之一就是二维码生成器。据描述,该控件支持最高177*177个模块的二维码。支持动态生成,是个很大的亮点。基于此功能,做个小程序来学习如何使用。; E6 P- H" O. A4 t6 w
# X( i6 N1 q# f+ ?3 n8 n 完成效果如下# I) p' U1 B5 b% S- ^/ l. [
; m' I; D! c' p$ E* g, B6 i
点击12个按键输入字符,执行OK后二维码便刷新为输入的字符内容。执行CLR后清除输入的字符串。检查也很简单,任何扫一扫功能的APP都能识别出来。实现这个功能需要以下过程
- [ j8 j, r& _* _1 @* U 首先生成一个TouchGFX工程,搜索开发板,基于STM32H7S78-DK板卡创建模板工程。这个工程包含了GUI程序的基础外设配置和驱动实现,可以直接编译下载。
% C" \$ x. } s& p1 ?% d
# |( Y) X8 D; I8 S" M; X' s
事实上,使用完整的输入法才能键入所有字符,这里只添加了加个按键,支持少数字符的输入,演示作用。添加含LABEL的按钮14个。设置好格式。字体不变,按下效果变化。
. W& {) L) Z( N8 }2 Q6 M( b
+ h2 Z( d. S0 c$ C. a0 d 要输入内容,那么按键按下后要执行文本更新,每个按键都给按下事件。- S% G( e, [( G( B+ P
8 r# m/ l( L4 J/ X. m. U 还要添加个textArea用来显示文本内容,设置缓存大小。
/ t9 @, E+ t+ {/ ~0 l& O2 |7 |
# B8 L6 I) V( K9 m8 x; y0 y: {
最重要的角色就是这面图片已经出现的二维码控件。调整适合大小
! o( x2 L b4 V+ ^& [- e( e0 _' t
( I) M8 [ b+ I/ k1 \) G5 u
完成以上,就完成了一大半的工作,这便是TouchGFX做GUI应用的优势体现。接下来要修改代码。以下就是清空字符和更新二维码的主要代码。( D- x' O& S& c1 g' } E% Z# K
5 |& @& u9 f- \: o- G0 j
- if (&src == &buttonWithLabelOK)! E' `6 E# K, _
- {
) a( ]' h8 K+ S6 W* \- i2 g - //Interaction13
* |7 [8 | C* M3 p* Y5 k8 D - //When buttonWithLabelOK clicked call virtual function5 v2 R1 b% t# ]. |: O3 R: ?3 `% l1 o" G
- //Call function_ok
3 }5 W! O) v2 I3 B - //function_ok();
) S2 r9 t: e' v7 L) Y6 C/ l! [1 O0 A) a - qrCode1.convertStringToQRCode((char*)str);7 |7 A6 q* f7 \$ r! r( l
- qrCode1.invalidate();; _% Y P4 R9 f1 s/ P* t/ j
- return;
7 p6 k( l) T/ Z d - }
8 Y, C7 f2 J: h) U7 Z/ Z1 i - if (&src == &buttonWithLabelCLR)
?0 J/ r6 B8 G, R& x E$ a - {- _8 q" }' w( f0 E1 O: _) t3 R
- //Interaction14
) ]5 i* P" \) q+ N6 F8 D9 B- P! Z - //When buttonWithLabelCLR clicked call virtual function# W4 X+ r# a& U" g3 D4 o
- //Call function_clr- @, u9 t, P- x9 h+ o$ v9 f2 l
- //function_clr();
2 M/ n5 |2 L+ e- g2 \+ m* {' Y" o - 6 O5 ^ q' ]3 h% }
- memset(textArea1Buffer,'\0',128);% H- {' O3 L" ]3 N
- textArea1.invalidate();
- Y2 W5 ]: s6 F) {, {8 o - count = 0;
6 n. \7 H3 e, t# m# J6 H - return;2 z. V/ ^* ]1 P4 o& S! ?# O2 g
- }
复制代码 测试结果如下
5 l4 @( z$ ]# k5 e4 E% T
9 P$ X3 ?. c; t) \$ M, v* ?
首次上传B站,没有经验哈哈
QR Cod演示.rar
(41.13 MB, 下载次数: 2)
|