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. Rabbitmq集群升级方案

    升级Rabbitmq 3.6.3版本至3.6.6版本,升级过程中的一些关键步骤记录 Step 1: 顺序关闭集群所有节点,这里注意最后一个关闭的节点必须保证为硬盘节点,而非RAM节点: centOS ...

  2. table里面,怎么根据checkbox选择的一行中的某个单元格的值是否为空,来判断是否该选中

    <table class="stripe" id="tab2"> <tr> <th>选择</th> <th ...

  3. 一个脚本可以一直运行 ignore_user_abort

    php中ignore_user_abort函数的用法 PHP中的ignore_user_abort函数是当用户关掉终端后脚本不停止仍然在执行,可以用它来实现计划任务与持续进程,下面会通过实例讨论ign ...

  4. Newick format tree

    1. all branches + leaf names + internal supports ((D:0.723274,F:0.567784)1.000000:0.067192,(B:0.2793 ...

  5. cocos2d-x内存管理

    Cocos2d-x内存管理 老师让我给班上同学讲讲cocos2d-x的内存管理,时间也不多,于是看了看源码,写了个提纲和大概思想 一.   为什么需要内存管理 1. new和delete 2. 堆上申 ...

  6. BZOJ3879: SvT

    后缀数组裸题,每次的查询单调栈扫一遍就完了.为什么要写虚后缀树= =后缀数组不是自带虚树的结构么= = #include<cstdio> #include<algorithm> ...

  7. sql 批量插入数据到Sqlserver中 效率较高的方法

    使用SqlBulk #region 方式二 static void InsertTwo() { Console.WriteLine("使用Bulk插入的实现方式"); Stopwa ...

  8. 二、基于hadoop的nginx访问日志分析---计算日pv

    代码: # pv_day.py#!/usr/bin/env python # coding=utf-8 from mrjob.job import MRJob from nginx_accesslog ...

  9. System.Web.Http.Cors配置跨域访问的两种方式

    System.Web.Http.Cors配置跨域访问的两种方式 使用System.Web.Http.Cors配置跨域访问,众多大神已经发布了很多文章,我就不在详细描述了,作为小白我只说一下自己的使用心 ...

  10. springmvc @responsebody 406/415问题解决

    提供几个解决思路 1.如果项目中用的spring jar包是4.x版本, 需要jackson-annotations-2.x/jackson-core-2.x/jackson-databind-2.x ...