在Touch GFX4.24中新增了几个功能,其中之一就是二维码生成器。据描述,该控件支持最高177*177个模块的二维码。支持动态生成,是个很大的亮点。基于此功能,做个小程序来学习如何使用。5 J5 F% T; r' _9 s% I# O) @: t
& s9 Q9 V! ^6 C
完成效果如下, I( Q/ A* Z, u3 G8 H# v
6 d% C( k+ u# `4 J+ Q 点击12个按键输入字符,执行OK后二维码便刷新为输入的字符内容。执行CLR后清除输入的字符串。检查也很简单,任何扫一扫功能的APP都能识别出来。实现这个功能需要以下过程
% n7 a( c% y- D4 ]3 i! H8 k5 b& y0 L 首先生成一个TouchGFX工程,搜索开发板,基于STM32H7S78-DK板卡创建模板工程。这个工程包含了GUI程序的基础外设配置和驱动实现,可以直接编译下载。" C' a" U0 |' s6 s0 Z
! ]+ @4 W2 P7 W" o# j$ i* B$ R 事实上,使用完整的输入法才能键入所有字符,这里只添加了加个按键,支持少数字符的输入,演示作用。添加含LABEL的按钮14个。设置好格式。字体不变,按下效果变化。* \) Y- r% T1 l4 o3 w
; ?& k' {* q; Z7 o% P 要输入内容,那么按键按下后要执行文本更新,每个按键都给按下事件。) O5 P1 H) m; \) y# M; v
& E# j+ j% m. B* b2 v1 G$ f' K
还要添加个textArea用来显示文本内容,设置缓存大小。
5 A$ h4 `$ e: h& A8 s
; X/ k2 Y2 a6 C, t 最重要的角色就是这面图片已经出现的二维码控件。调整适合大小
7 a0 z+ I( e2 {; k2 `4 `
( x* O$ s" s6 e) d" ~8 Q: I
完成以上,就完成了一大半的工作,这便是TouchGFX做GUI应用的优势体现。接下来要修改代码。以下就是清空字符和更新二维码的主要代码。
* |$ j4 t( U% [: A: Y
) C( ]4 x! Y1 h% X4 O$ |- if (&src == &buttonWithLabelOK)
7 q4 k5 c# H6 n$ H5 j# P - {
/ q8 g2 A/ R. W9 M0 i% { - //Interaction13% Z$ z! [( Q# U7 E* _' T
- //When buttonWithLabelOK clicked call virtual function
# p" x9 T5 o/ i* d" a' u$ Y' Z: } H - //Call function_ok/ U; Y: j; j- _; `. K& A7 a
- //function_ok();
( T, G* Z3 g. o2 x) t( I - qrCode1.convertStringToQRCode((char*)str);: p- l& E, o7 W) c1 L0 `: Q% [
- qrCode1.invalidate();
3 \# \5 b. c: d* G' ?( M - return;* v5 |: O; K6 l2 q
- }# f! Z# e) E( u* U6 \
- if (&src == &buttonWithLabelCLR)& h+ M; S. [% X h& R: F& d2 d
- {3 P: I$ K0 |9 f1 [1 I! @
- //Interaction14
% i- R" a' C% o7 d; g7 x - //When buttonWithLabelCLR clicked call virtual function) O# I! M! k% W
- //Call function_clr
& T4 w5 r3 g) x$ n" r- l3 s D - //function_clr();
' n7 A$ z n+ O, g! F
' ]' J! e/ @- r- memset(textArea1Buffer,'\0',128);$ }+ J8 `# ]: H$ O& Q6 \! O- q
- textArea1.invalidate();
" @- G) s# x/ ^: z8 m: i; | - count = 0;
! n' W' ~: C9 d# ]/ L( Q" U+ N - return;
( g$ I) n3 R+ C" b; g - }
复制代码 测试结果如下& b/ ?! F4 `" }; c, |9 p
% K7 Q2 v5 t6 @% ] 首次上传B站,没有经验哈哈
QR Cod演示.rar
(41.13 MB, 下载次数: 2)
|