Qt中QZXing如何编译使用
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,小编给大家分享一下Qt中QZXing如何编译使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.编译下载源码后可以用 C
千家信息网最后更新 2025年11月16日Qt中QZXing如何编译使用
小编给大家分享一下Qt中QZXing如何编译使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1.编译
下载源码后可以用 CMake 或者直接打开 pro 进行构建。网上有人编译失败,但是我用 Qt5.15 + VS2019 编译 QZXing3.3.0 并没有出现编译问题。 编译复制头文件和库文件到我们的工程。
测试工程(Qt5 + MSVC2019):
https://github.com/gongjianbo/MyTestCode2021/tree/master/Qt/QtQZXingVS2019

2.二维码生成
先打开编码功能,添加一个宏:
DEFINES += ENABLE_ENCODER_GENERIC
然后从 QZXing README 看简单的生成示例:
#include "QZXing.h" int main(){ QString data = "text to be encoded"; QImage barcode = QZXing::encodeData(data); //QImage barcode = QZXing::encodeData(data, QZXing::EncoderFormat_QR_CODE, // QSize(240, 240), QZXing::EncodeErrorCorrectionLevel_H);}接口声明:
#ifdef ENABLE_ENCODER_GENERIC//二维码编码接口,目前仅支持QR Code码//QZXingEncoderConfig是个结构体,成员如下一个重载接口的参数static QImage encodeData(const QString &data, const QZXingEncoderConfig &encoderConfig); //二维码编码接口,目前仅支持QR Code码//encoderFormat 编码格式枚举//encoderImageSize 生成二维码的大小//errorCorrectionLevel 纠错等级//border =true会有一圈白边,感觉没啥用//transparent =true会半透明,感觉没啥用static QImage encodeData(const QString& data, const EncoderFormat encoderFormat = EncoderFormat_QR_CODE, const QSize encoderImageSize = QSize(240, 240), const EncodeErrorCorrectionLevel errorCorrectionLevel = EncodeErrorCorrectionLevel_L, const bool border = false, const bool transparent = false);#endif // ENABLE_ENCODER_GENERIC
由于是使用 Qt 封装的,所以不用像其他库那样还要自己根据矩阵结果绘制 QImage。
3.二维码识别
文档里着重讲了解码的使用,并且封装了相应的 QML 组件。
C++ 使用:
#include "QZXing.h" int main(){ QImage imageToDecode("file.png"); QZXing decoder; //必要设置 decoder.setDecoder(QZXing::DecoderFormat_QR_CODE | QZXing::DecoderFormat_EAN_13 ); //可选设置 //decoder.setSourceFilterType(QZXing::SourceFilter_ImageNormal | QZXing::SourceFilter_ImageInverted); decoder.setSourceFilterType(QZXing::SourceFilter_ImageNormal); decoder.setTryHarderBehaviour(QZXing::TryHarderBehaviour_ThoroughScanning | QZXing::TryHarderBehaviour_Rotate); //解码 QString result = decoder.decodeImage(imageToDecode);}QML 使用:
#include "QZXing.h" int main(){ ... QZXing::registerQMLTypes(); ...}import QtQuick 2.0import QZXing 3.3 Item{ function decode(preview) { imageToDecode.source = preview decoder.decodeImageQML(imageToDecode); } Image{ id:imageToDecode } QZXing{ id: decoder enabledDecoders: QZXing.DecoderFormat_QR_CODE / //可选设置 tryHarderType: QZXing.TryHarderBehaviour_ThoroughScanning | QZXing.TryHarderBehaviour_Rotate imageSourceFilter: QZXing.SourceFilter_ImageNormal //| QZXing.SourceFilter_ImageInverted / onDecodingStarted: console.log("Decoding of image started...") onTagFound: console.log("Barcode data: " + tag) onDecodingFinished: console.log("Decoding finished " + (succeeded==true ? "successfully" : "unsuccessfully") ) }}参数较多,如果有疑问可以搜 zxing 的文档。经测试,该库是可以做一些简单的图像识别,可以识别截图中的二维码,但是对拍照的二维码识别不了,所以要直接识别还是得用上图像处理库。
以上是"Qt中QZXing如何编译使用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
编译
二维
二维码
接口
编码
篇文章
生成
内容
参数
图像
工程
感觉
文档
封装
支持
测试
必要
不怎么
不用
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中国近海波浪数据库
网络安全 宣传周 新闻
QQ软件开发技术的特点
不太想做软件开发了
西安软件开发巩晓琳
软件开发的主要环节
网络数据库搭建
阿里巴巴内存数据库
阐述网络安全服务的内容
评估公司软件开发能力
三级数据库技术题库电子书
visio 数据库uml
连不上阿里云数据库
护苗网络安全第五裸
诈骗 软件开发
宝塔gz类型的数据库
ftp服务器管理软件app
中小型it公司服务器规模
java爬虫并存入数据库
服务器接口可以用trunk吗
数据库中的索引突然没了
问道开服必须要用云服务器吗
软件开发与数据分析就业前景
svn备份远程服务器
晨曦网络安全专业
昆明非比网络技术有限公司规模
网络安全监控作业内容指标
define数据库的意思
数据库数据修改错误还原
服务器 改家