Qt 二维码
1.生成二维码
利用第三方库qrencode ,将qrencode源码添加到自己的程序中,直接调用使用.
参考http://blog.csdn.net/zhangxufei/article/details/52149892
1.qrencode-3.4.4文件夹复制到源代码下面,把*.h*.c文件加入到工程中。
2.在QT pro文件添加
DEFINES += HAVE_CONFIG_H
INCLUDEPATH += qrencode-3.4.4/
3.重新定义 MAJOR_VERSION、MICRO_VERSION、MINOR_VERSION、VERSION,重新定义的方法:找到#undef MAJOR_VERSION位置,在其下面定义#define MAJOR_VERSION 1,其他几个也这么定义;
需要到文件如下:


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include "qrencode.h" #include <QPainter> MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
} MainWindow::~MainWindow()
{
delete ui;
} void MainWindow::on_pushButton_GenerateQRCode_clicked()
{ QString strCodeData=ui->lineEdit_CodeData->text(); QByteArray ba = strCodeData.toLocal8Bit();
char *codeData = ba.data();
generateQRcode(codeData); } void MainWindow::generateQRcode(const char* codeData)
{ //QR_ECLEVEL_Q 容错等级
QRcode * qrcode = QRcode_encodeString(codeData, , QR_ECLEVEL_Q, QR_MODE_8, ); qint32 tempWidth=ui->label->width(); //二维码图片的大小
qint32 tempHeight=ui->label->height();
qint32 qrcodeWidth = qrcode->width > ? qrcode->width : ;
double scaleX = (double)tempWidth / (double)qrcodeWidth; //二维码图片的缩放比例
double scaleY = (double) tempHeight /(double) qrcodeWidth; qDebug()<<"scale_x"<<scaleX; QImage mainImg=QImage(tempWidth,tempHeight,QImage::Format_ARGB32);
QPainter painter(&mainImg);
QColor background(Qt::white);
painter.setBrush(background);
painter.setPen(Qt::NoPen);
painter.drawRect(, , tempWidth, tempHeight); QColor foreground(Qt::black);
painter.setBrush(foreground);
for( qint32 y = ; y < qrcodeWidth; y ++)
{
for(qint32 x = ; x < qrcodeWidth; x++)
{
unsigned char b = qrcode->data[y * qrcodeWidth + x];
if(b & 0x01)
{
QRectF r(x * scaleX, y * scaleY, scaleX, scaleY);
painter.drawRects(&r, );
}
}
}
QPixmap codeImage=QPixmap::fromImage(mainImg);
ui->label->setPixmap(codeImage);
ui->label->setVisible(true); }
Qt 二维码的更多相关文章
- qt二维码示例
原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://blog.csdn.net/hiwubihe/article/details/38679621,qq:1269122125. 移动终 ...
- Qt之二维码扫描
简述 二维码(QR Code)是用某种特定的几何图形按一定规律在平面(二维方向)分布的黑白相间的图形记录数据符号信息的.是所有信息数据的一把钥匙.应用十分广泛,如:产品防伪/溯源.广告推送.网站链接. ...
- 我写的一个Qt 显示二维码( QR Code)的控件(可以去掉对 libpthread 的依赖,而且编译出的库文件可以在 vc2010 的release 模式下使用)
最近一个项目需要显示二维码,所以花了点时间(只用了一个晚上,写的很不完善),写了个显示二维码的控件.当然这个控件用到了些开源的代码,比如qrencode,所以我也打算把我的代码开源. 我的代码参考了 ...
- Qt+QZXing编写识别二维码的程序
本人最近在用Qt编写程序,需要用编写二维码识别功能.在网上搜寻一番,找到了QZXing.配置过程中确实出了一大把汗,这里我写这篇文章记录配置方法,替后人省一把汗吧!我的开发环境:MSVC2010 + ...
- Pyqt+QRcode 生成 识别 二维码
1.生成二维码 python生成二维码是件很简单的事,使用第三方库Python QRCode就可生成二维码,我用Pyqt给QRcode打个壳 一.python-qrcode介绍 python-qrco ...
- C++二维码相关库编译
一.瞎想 坐在地铁上闲来无聊,突然想到了二维码,顺手就百度了下相关的资料,目前C++二维码相关的库不多,也就zbar(开源中国上下了半天也没下载下来).zxing,不过这两个库据说都是解析二维码的,不 ...
- 如何用C代码生成二维码
如何用C代码生成二维码 当下因微信和支付宝等手机应用广泛使用,而基于二维码/一维条码的移动支付,也借助手机移动端席卷全国,使得越来越多的人知道有"二维码"这么一种东西. 对于普通用 ...
- jquery自动生成二维码
把下面的jquery代码放到想要在当前页面上面生成二维码: 代码如下: <script type="text/javascript">var _qrContent='' ...
- 如何使用 libqr 库生成二维码?
使用 libqr 库只需 4 步即可生成二维码 1.初始化 QRCode 结构体 QRCode *qrInit(int version, int mode, int eclevel, int mask ...
随机推荐
- ajax提交数据到java后台,并且返回json格式数据前台接收处理值
1.前台html页面.有一段代码如下: 账 户: <input type="text" name="userName" id="userN& ...
- Java中private、protected、public和default的区别
public: 具有最大的访问权限,可以访问任何一个在classpath下的类.接口.异常等.它往往用于对外的情况,也就是对象或类对外的一种接口的形式. protected: 主要的作用就是用来保护子 ...
- 关于input的file框onchange事件触发一次失效的新的解决方法
在google了众多方法后,网上有这么几种方法: 1.替换掉原来的input框 2.remove原来的input框,然后在添加进新的一样的input框 但是不知道为什么非常不幸的是,怎么弄我都弄不出. ...
- CodeForces - 696B Puzzles
http://codeforces.com/problemset/problem/696/B 题目大意: 这是一颗有n个点的树,你从根开始游走,每当你第一次到达一个点时,把这个点的权记为(你已经到过不 ...
- Zabbix协议分析
概述 Zabbix使用一种自定义的基于TCP的协议与客户端进行通信 Zabbix <- TCP -> Zabbix agent 协议内容 <HEADER> - bytes) & ...
- 关于ACM的总结
看了不少大神的退役帖,今天终于要本弱装一波逼祭奠一下我关于ACM的回忆. 从大二上开始接触到大三下结束,接近两年的时间,对于大神们来说两年的确算不上时间,然而对于本弱来说就是大学的一半时光.大一的懵懂 ...
- 字符串作为map的key
#include <map> #include <string> struct cmp_str{ bool operator()(char const* a, char con ...
- MVC防止xss攻击 ——Html.AntiForgeryToken的AJAX提交
1.在Html表单里面使用了@Html.AntiForgeryToken()就可以阻止CSRF攻击. 2.相应的我们要在Controller中也要加入[ValidateAntiForgeryToken ...
- 聊一聊PV和并发
最近和几个朋友,聊到并发和服务器的压力问题.很多朋友,不知道该怎么去计算并发?部署多少台服务器才合适? 所以,今天就来聊一聊PV和并发,还有计算web服务器的数量 的等方法.这些都是自己的想法加上一些 ...
- Android studio 软件板块