Qt|字符串生成二维码功能
最近在整理开发项目中遇到的知识点,发现了一个特别有意思的功能:使用字符串生成二维码操作。
功能实现
开发环境:WIN10 环境 + VS2017 + Qt 5.14.2 64 位开发环境
资源包数据
说实话我的开发环境还真是挺麻烦的~
想要使用 Qt 使用二维码功能,必须要外加 "qrencode"库。针对我目前用的环境使用 cmake 编译了一个 dll 库
编译出来的文件包含了两个:lib 和 src,如果跟我的开发环境不一致的,可以自行编译,也是很快的(我发现 camke 真是一个好工具呀~)
配置属性
1:头文件设置
2:静态库设置
说明:根据上述三张图片中红色区域部分进行设置。
大家可以发现我设置的时候都有一个相同点,全部使用了相对路径。
一般多个人在做规模庞大的项目时,都会采用相对路径,即使每个人将项目放到了不同磁盘,也不会发生数据读取的问题。
说到了这里,那么我就接着来说一些关于配置的题外话吧~希望对你有帮助哦!
题外话:既然如此,我们生成的 exe 也会放到一个单独的目录中,假设我们叫做 bin 文件
在 VS 中默认生成的 exe 会根据是 debug 或者 release 环境生成到对应的文件夹中。当前要将两个环境合并需要修改配置属性中的常规操作
最后,也需要在代码中设置,将 exe 的生成目录设置成当前路径,否则在程序中使用相对路径时,无法找到对应文件!
这两句话最好放到 main.cpp 中,让整个项目生效。
二维码操作
接下来便是我们的重头戏了,如何使用字符串生成二维码啦
1:创建 QR 操作类用于绘制 QImage 图形
定义类:QORCodeOperation
函数(GeneratedGraphics)
传入指定的字符串以及二维码的宽度高度,返回图形的 QImage 值。
一般情况下我们会将 QIamge 赋值到 QLable 上展示。
参数(m_imgIcon)
QPximap 类型的成员变量,主要是绘制图形,在最开始的显示效果生可以看出二维码中间添加了一张图片,主要用于显示图片的。
2:生成二维码图形 QImage
2.1:定义 QImage 对象存储生成内容
QImage 存储根据设置的 nsize 大小的宽度高度构造一幅图像,程序会自动根据图像格式对齐数据,使用 32 位 RGB 格式的图像(0xffrrggbb)
2.2:构造绘图指针
构造 QPainter 绘制指针,一般当传入的 QSize 数据为 0 时,是无法进行后续操作的,也就是 isActiva = false
2.3:根据字符串获取 QRcode 类实例
2.4:设置点画刷以及背景画刷
2.5:绘制图形
这里为了偷懒再判断宽度值时采用了三目运算符操作。
2.6:释放 QRcode 指针
2.7:添加二维码图形
其实我们在中间展示的图片比较小,直接覆盖到二维码上就可以了
2.8:结束绘制
到这里具体的二维码绘制已经完成了,对外我们只需要返回存储绘制数据的 QImage 就可以了。
3:二维码函数调用
总结
到这里字符串生成二维码功能就讲解完成了,难度不是很大,只要将环境配置成功就完成了一般的功能了,剩下的就是根据你的想法,想要如何展示了。
我是中国好公民,专注 C++开发程序猿~
版权声明: 本文为 InfoQ 作者【中国好公民st】的原创文章。
原文链接:【http://xie.infoq.cn/article/8ec73c9a53d24f3719e154191】。文章转载请联系作者。
评论