Qt中QZXing如何编译使用
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下Qt中QZXing如何编译使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.编译下载源码后可以用 C
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
湖北九亚互联网络科技有限公司
苏州找大状互联网科技有限公司
国智互联网科技
互联网科技官网
互联网科技有限公司经营范围
互联网科技深圳
狮子座互联网科技培训
左右互联网络科技
互联网科技生活的内容
湖南诚度互联网科技有限公司
昭通互联网科技选哪家
健康食品互联网创新科技园项目
互联网科技人工智能实验室
互联网行业科技股
互联网科技创新的路径
互联网科技大赛获奖感言
无锡工业互联网科技有限公司
伍佰万互联网科技怎么赚钱
互联网营销推广黑科技
张家口科技产业互联网平台
互联网科技海报
互联网科技公司简介
科技类互联网
互联网科技的发展
安徽鑫晟辉互联网科技
极限挑战互联网科技
郑州华宇互联网科技
昭通互联网科技选哪家
消费医药和互联网科技
云鲸互联网络科技有限公司