qt產生二維碼

來源:互聯網
上載者:User

標籤:inter   height   scale   str   encode   gen   測試   .cpp   paint   

到官網下載qrencode

http://fukuchi.org/works/qrencode/index.html.en
qrenc.c不用,這個是測試用的,把config.h.in檔案改為config.h檔案,把.h檔案和.cpp檔案匯入,在整個項目的pro檔案中加入
DEFINES +=HAVE_CONFIG_HOTHER_FILES += qrcode/config.h.in
#include "qrcode/qrencode.h"void MainWindow::GenerateQRcode(QString tempstr){    QRcode *qrcode;    qrcode=QRcode_encodeString(tempstr.toStdString().c_str(),2,QR_ECLEVEL_Q,QR_MODE_8,1);    qint32 temp_width=ui->label->width();    qint32 temp_height=ui->label->height();    qDebug()<<"temp_width="<<temp_width<<";temp_height="<<temp_height;    qint32 qrcode_width=qrcode->width>0?qrcode->width:1;    double scale_x=(double)temp_width/(double)qrcode_width;    double scale_y=(double)temp_height/(double)qrcode_width;    QImage mainimg=QImage(temp_width,temp_height,QImage::Format_ARGB32);    QPainter painter(&mainimg);    QColor background(Qt::white);    painter.setBrush(background);    painter.setPen(Qt::NoPen);    painter.drawRect(0,0,temp_width,temp_height);    QColor foreground(Qt::black);    painter.setBrush(foreground);    for(qint32 y=0;y<qrcode_width;y++)    {        for(qint32 x=0;x<qrcode_width;x++)        {            unsigned char b=qrcode->data[y*qrcode_width+x];            if(b &0x01)            {                QRectF r(x*scale_x,y*scale_y,scale_x,scale_y);                painter.drawRects(&r,1);            }        }    }   QPixmap mainmap=QPixmap::fromImage(mainimg);   QLabel *plabel = new QLabel();   plabel->setPixmap(mainmap);   plabel->setVisible(true);}

 

qt產生二維碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.