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 二维码的更多相关文章

  1. qt二维码示例

    原创文章,引用请保证原文完整性,尊重作者劳动,原文地址http://blog.csdn.net/hiwubihe/article/details/38679621,qq:1269122125. 移动终 ...

  2. Qt之二维码扫描

    简述 二维码(QR Code)是用某种特定的几何图形按一定规律在平面(二维方向)分布的黑白相间的图形记录数据符号信息的.是所有信息数据的一把钥匙.应用十分广泛,如:产品防伪/溯源.广告推送.网站链接. ...

  3. 我写的一个Qt 显示二维码( QR Code)的控件(可以去掉对 libpthread 的依赖,而且编译出的库文件可以在 vc2010 的release 模式下使用)

    最近一个项目需要显示二维码,所以花了点时间(只用了一个晚上,写的很不完善),写了个显示二维码的控件.当然这个控件用到了些开源的代码,比如qrencode,所以我也打算把我的代码开源. 我的代码参考了 ...

  4. Qt+QZXing编写识别二维码的程序

    本人最近在用Qt编写程序,需要用编写二维码识别功能.在网上搜寻一番,找到了QZXing.配置过程中确实出了一大把汗,这里我写这篇文章记录配置方法,替后人省一把汗吧!我的开发环境:MSVC2010 + ...

  5. Pyqt+QRcode 生成 识别 二维码

    1.生成二维码 python生成二维码是件很简单的事,使用第三方库Python QRCode就可生成二维码,我用Pyqt给QRcode打个壳 一.python-qrcode介绍 python-qrco ...

  6. C++二维码相关库编译

    一.瞎想 坐在地铁上闲来无聊,突然想到了二维码,顺手就百度了下相关的资料,目前C++二维码相关的库不多,也就zbar(开源中国上下了半天也没下载下来).zxing,不过这两个库据说都是解析二维码的,不 ...

  7. 如何用C代码生成二维码

    如何用C代码生成二维码 当下因微信和支付宝等手机应用广泛使用,而基于二维码/一维条码的移动支付,也借助手机移动端席卷全国,使得越来越多的人知道有"二维码"这么一种东西. 对于普通用 ...

  8. jquery自动生成二维码

    把下面的jquery代码放到想要在当前页面上面生成二维码: 代码如下: <script type="text/javascript">var _qrContent='' ...

  9. 如何使用 libqr 库生成二维码?

    使用 libqr 库只需 4 步即可生成二维码 1.初始化 QRCode 结构体 QRCode *qrInit(int version, int mode, int eclevel, int mask ...

随机推荐

  1. Service实时向Activity传递数据案例

    转自 http://www.cnblogs.com/linjiqin/p/3147764.html 演示一个案例,需求如下:在Service组件中创建一个线程,该线程用来生产数值,每隔1秒数值自动加1 ...

  2. JavaIO学习笔记(五)

    JavaIO前期准备 什么是同步 指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 什么是异步 异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO ...

  3. Leetcode 45. Jump Game II

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  4. Unity Animator动画状态机 深入理解(三)二维混合树

    介绍二维之前,先说说一维吧~ 这个是通过旋转角度速度快慢来表现身体的大转和中转~ 通过一个-133~133的数值来进行控制. 注:后面的那个对钩是镜像的意思. 其实二维混合树并没有想象中的那么难.先来 ...

  5. Beta阶段第八次Scrum Meeting

    情况简述 BETA阶段第八次Scrum Meeting 敏捷开发起始时间 2016/12/21 00:00 敏捷开发终止时间 2016/12/22 00:00 会议基本内容摘要 deadline临近 ...

  6. angular2学习地址

    http://www.hubwiz.com/course/5599d367a164dd0d75929c76/ http://learnangular2.com/inputs/ https://www. ...

  7. python的错误和异常

    python错误和异常 错误 错误分为语法错误和逻辑错误 语法错误 >>> if File "<stdin>", line 1 if ^ Syntax ...

  8. c# .net获取文件夹下的所有文件(多层递归),并获取区间数据(Jsion,xml等数据)写出到处理文件,学习分享~

    static void Main(string[] args)        { string path = string.Format(@"C:\Users\Administrator\D ...

  9. MyEclipse部署web项目到Tomcat出现An internal error occurred during: "Launching on Tomcat 7.x"的问题

    如果出现了上述的错误按照如下的3个步骤解决:1.首先关闭MyEclipse工作空间.2.然后删除工作空间下的文件."MyEclipse10\workspace.metadata.plugin ...

  10. Java Web学习笔记---用GET实现搜索引擎

    今天做了一个实验,关于Servlet的.使用GET实现搜索引擎.因自己没有搜索引擎数据库,所以使用了Yahoo提供的Search API. 浏览效果如下图: 现在雅虎推出了新的Search API-- ...