在Touch GFX4.24中新增了几个功能,其中之一就是二维码生成器。据描述,该控件支持最高177*177个模块的二维码。支持动态生成,是个很大的亮点。基于此功能,做个小程序来学习如何使用。
. g) j- d% ?+ y7 A1 Q8 `. T7 g$ w( D+ G* f
完成效果如下
' ?- s2 b) P% n2 s9 x1 a) A! Y
) `. b3 h% k3 r# B2 t1 L9 h9 L 点击12个按键输入字符,执行OK后二维码便刷新为输入的字符内容。执行CLR后清除输入的字符串。检查也很简单,任何扫一扫功能的APP都能识别出来。实现这个功能需要以下过程
. k; g) m9 M9 F- Y" { 首先生成一个TouchGFX工程,搜索开发板,基于STM32H7S78-DK板卡创建模板工程。这个工程包含了GUI程序的基础外设配置和驱动实现,可以直接编译下载。
% K4 h+ L: ?3 g
9 Y% O( u+ R* C4 H- x% p" Y& V4 K' d# P 事实上,使用完整的输入法才能键入所有字符,这里只添加了加个按键,支持少数字符的输入,演示作用。添加含LABEL的按钮14个。设置好格式。字体不变,按下效果变化。
/ |; D u& Z5 R' T- r
$ Q+ X7 N" S( T' p) M9 u k8 N 要输入内容,那么按键按下后要执行文本更新,每个按键都给按下事件。
+ X$ G3 \$ I0 X v" B/ D# K/ h/ P
- K; p' D! w: s) o" V 还要添加个textArea用来显示文本内容,设置缓存大小。2 G" j" [8 Y. Z
& R# P6 K" D, @- C: f# ~5 g 最重要的角色就是这面图片已经出现的二维码控件。调整适合大小
9 B' f- A' _# ~& X4 P- R4 H
, I: W0 z* B5 E$ h. o! h6 f 完成以上,就完成了一大半的工作,这便是TouchGFX做GUI应用的优势体现。接下来要修改代码。以下就是清空字符和更新二维码的主要代码。" A1 m, ^( a$ \" t
{% T& S; l) ^' R3 W- if (&src == &buttonWithLabelOK)
7 `/ N4 ]0 p. `9 ?. S - {! q: t% i4 F; W( H& ]/ g7 r. k
- //Interaction13 P9 ~& \$ |' x) P U
- //When buttonWithLabelOK clicked call virtual function
p5 G+ V) e" |& f - //Call function_ok
5 o0 q# m+ Y& }1 j/ y; y% b - //function_ok(); h6 L/ K$ A! b+ |. h
- qrCode1.convertStringToQRCode((char*)str);
- b- Q% s; H5 o2 y# o - qrCode1.invalidate();
6 j- K l8 m9 s; y8 i# q - return;9 t" N9 {/ I" |+ z
- }
9 J0 m, W& ^; V. O8 K0 i1 e - if (&src == &buttonWithLabelCLR)
; e. E6 o- W9 v* x. G& j1 W' H - {( Q! q) u3 V2 ]2 f; f. D( ?; S( B5 C, |
- //Interaction14$ T; F% y# J- D3 ~
- //When buttonWithLabelCLR clicked call virtual function
7 i! |/ p( n+ O, f+ Q - //Call function_clr
$ v) ?0 H, V7 u. n - //function_clr();
% N- l1 {# J. D6 t
) F; x9 w k2 X1 y- memset(textArea1Buffer,'\0',128);
) s7 E" H T6 b - textArea1.invalidate();
8 Y9 \$ @" F" L! [& b- a1 W( u+ y - count = 0;
; f1 j6 _( |* q' Q4 \, J3 ? - return;
# y. c8 f: y5 p4 B - }
复制代码 测试结果如下
" w5 W- ]7 m9 u" g# d. u
$ Z8 K8 H7 r; s$ l8 X2 X 首次上传B站,没有经验哈哈
QR Cod演示.rar
(41.13 MB, 下载次数: 2)
|