当前位置: 首页 > wzjs >正文

青岛住房和城乡建设部网站设计一个网站策划书

青岛住房和城乡建设部网站,设计一个网站策划书,在百度云上建设网站,个人网站制作过程目录 1.QRencode简介 2.编译qrencode 3.在Qt中直接使用QRencode源码 3.1.添加源码 3.2.用字符串生成二维码 3.3.用二进制数据生成二维码 3.4.界面设计 3.5.效果展示 4.注意事项 5.源码下载 1.QRencode简介 QRencode是一个开源的库,专门用于生成二维码&…

目录

1.QRencode简介

2.编译qrencode

3.在Qt中直接使用QRencode源码

3.1.添加源码

3.2.用字符串生成二维码

3.3.用二进制数据生成二维码

3.4.界面设计

3.5.效果展示

4.注意事项

5.源码下载


1.QRencode简介

        QRencode是一个开源的库,专门用于生成二维码(QR Code)。它支持多种编程语言的接口,包括C、C++、Python等。QR码是一种矩阵式二维码,常用于存储网址、联系信息、文字信息等,广泛应用于各种场景,如产品追踪、广告宣传、文档管理等。

        QRencode的设计简洁高效,提供了易于使用的API接口,使得开发者能够轻松地在应用程序中集成QR码生成和处理功能。

        它的官网:libqrencode

        特性与优势

  1. 输出格式:库支持生成多种格式的输出,包括PNG图片、SVG矢量图、ASCII文本形式的二维码等,这取决于库的具体实现和使用的接口。
  2. C++接口:对于C++,qrencode提供了丰富的类和方法来方便地生成二维码。用户可以创建一个QRcode对象,向其中添加数据,然后将其渲染成所需的格式。
  3. 跨平台qrencode库是跨平台的,可以在多种操作系统上编译和使用,包括Windows、Linux、macOS等。
  4. 生成能力qrencode库能够生成不同版本和纠错级别的QR码,支持从最小的版本1(21x21的模块)到最高的版本40(177x177的模块),并且可以根据需要调整纠错等级(L、M、Q、H)。
  5. C接口:对于C语言使用者,qrencode也提供了函数接口,通过这些函数可以直接操作二维码数据结构,进行编码和输出。
  6. 依赖:在某些情况下,如生成PNG图片输出时,qrencode可能需要额外的依赖,如libpngzlib库。

2.编译qrencode

  1. 下载源代码
  2. 将qrencode-4.1.1解压后,创建一个build文件夹;

  3. 打开Cmake,将qrencode-4.1.1文件夹下的CMakeLists.txt文件拖入CMake中;

  4. 点击【Configure】;

  5. 这里我选择了MSVC2017-64编译器,点击【Finish】;

  6.如下图所示进行配置,配置不正确会由于没有准备依赖而报错;

  1. 设置编译后的安装路径为C:/Users/MHF/Downloads/qrencode-4.1.1/QRencode
  2. 勾选WITHOUT_PNG,表示不支持png;
  3. 取消勾选WITH_TOOLS,否则会报错。

  7.然后点击【Generate】、【Open Project】打开VS;

  8.鼠标右键选择【ALL_BUILD】,点击【生成】,然后选择【INSTALL】,点击【生成】;

  9.就可以在安装路径下生成编译好的文件了;

  在QT中引入编译为静态库的QRencode

  • 创建一个工程,将编译后的QRencode文件夹复制到工程中;

  • 在工程的pro文件中添加下列代码;

CONFIG(debug, debug|release): {
LIBS += -L$$PWD/QRencode/lib/ -lqrencoded
}else{
LIBS += -L$$PWD/QRencode/lib/ -lqrencode
}
INCLUDEPATH += $$PWD/QRencode/include
DEPENDPATH += $$PWD/QRencode/include

3.在Qt中直接使用QRencode源码

3.1.添加源码

  • 将qrencode-4.1.1文件夹中除了.h、.c、config.h.in外的文件删除,文件夹也删除,qrenc.c也删除;

  • config.h.in重命名为config.h

  • 在pro文件中添加所有.h 、.c文件

  • 注意:还需要添加DEFINES += HAVE_CONFIG_H

  • 编译后会报错error: C2065: “MAJOR_VERSION”: 未声明的标识符

  • 打开config.h文件,如下图所示;

  • MAJOR_VERSIONMICRO_VERSIONMINOR_VERSIONVERSION四项修改为如下所示,与自己下载的版本号相同;

  • 然后就可以正常编译了;

3.2.用字符串生成二维码

        使用 QRcode_encodeString 或其他相关函数来生成二维码数据。这个函数会返回一个 QRcode 结构体,其中包含了二维码的像素数据。将 QRcode 结构体中的数据转换为图像格式,以便在屏幕上显示或打印出来。通常,你会遍历二维码的每个像素,并根据像素值(0 或 1)来设置图像的对应像素为黑色或白色。

void QRCodeDemo::setCodeString(const QString& strCodeString)
{m_strCodeString = strCodeString;
}void QRCodeDemo::paintEvent(QPaintEvent *event)
{QRcode *qrcode;qrcode = QRcode_encodeString(m_strCodeString.toStdString().c_str(), 2, QR_ECLEVEL_Q, QR_MODE_8, 1);if (nullptr == qrcode){return QWidget::paintEvent(event);}qint32 temp_width = ui.label->width();qint32 temp_height = ui.label->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);m_qrcodeImage = QImage(temp_width, temp_height, QImage::Format_ARGB32);QPainter painter(&m_qrcodeImage);QColor background(Qt::white);painter.setBrush(background);painter.setPen(Qt::NoPen);painter.drawRect(0, 0, temp_width, temp_height);QColor foreground(QColor("#002266")); // 二维码颜色painter.setBrush(foreground);qDebug()<<qrcode_width<<qrcode_width;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);}}}ui.label->setPixmap(QPixmap::fromImage(m_qrcodeImage));return QWidget::paintEvent(event);
}void QRCodeDemo::on_pushButton_clicked()
{setCodeString(ui.lineEdit->text());
}

        保存二维码图片:

void QRCodeDemo::on_pushButton_2_clicked()
{QString path("./12334434556.jpg");m_qrcodeImage.save(path);
}

3.3.用二进制数据生成二维码

        调用 QRcode_encodeData 可以把图片或其它二进制类型的数据转换为二维码,使用起来比较简单,在这里就不多距离了。

3.4.界面设计

通过Qt Designer设计程序界面,包括:

  • 一个输入框,用于接收用户输入的内容。

  • 一个按钮,用户点击后触发二维码生成。

  • 一个显示区域,用于实时展示生成的二维码。

  • 一个按钮,用户点击后保存二维码,这个按钮是动态生成的。

3.5.效果展示

程序运行效果如下图所示:

点击保存按钮,会在当前运行目录下生成相应的二维码图片:

4.注意事项

  • 二维码无法识别:可能是由于二维码生成时参数设置不当(如版本过低、容错率过低等)或二维码图像质量不佳(如模糊、破损等)导致的。解决方案是调整参数或提高图像质量。
  • 库依赖问题:在编译或运行QRencode时可能会遇到库依赖问题。解决方案是确保系统中已安装所有必要的库文件,并使用包管理器进行管理和更新。
  • 错误处理:在实际应用中,你应该添加更多的错误处理代码,比如检查QRcode_encodeString的返回值是否为NULL,以及处理任何可能的异常或错误情况。

5.源码下载

所有代码都是在QT5.12.12版本基础上编译的。

您可以通过以下链接下载本项目的源码:

通过网盘分享的文件:CreateQrcode_new.zip
链接: https://pan.baidu.com/s/1czmd-o_0Rcp06xDvJzKcVw?pwd=ben7 提取码: ben7

参考:

1.二维码的原理竟如此简单,第一次有人说的这么明白 


文章转载自:

http://DzpInywh.mstrb.cn
http://XGP7q660.mstrb.cn
http://qxuiimhd.mstrb.cn
http://WTL468PO.mstrb.cn
http://TiLr1EDG.mstrb.cn
http://paiKgHR3.mstrb.cn
http://A1JYtpIC.mstrb.cn
http://XL0kyV7p.mstrb.cn
http://WhBD3Sh9.mstrb.cn
http://yBOEIGVp.mstrb.cn
http://8Wcz9HXF.mstrb.cn
http://AAk5W3hP.mstrb.cn
http://bFlrBqhq.mstrb.cn
http://8v1av3QT.mstrb.cn
http://sHTBLtv9.mstrb.cn
http://5RFkfUMn.mstrb.cn
http://HGTtWoB1.mstrb.cn
http://8Vf5NNP8.mstrb.cn
http://U4Gn4lq1.mstrb.cn
http://wNOoUZOc.mstrb.cn
http://Cvx4buTs.mstrb.cn
http://WcL9tURc.mstrb.cn
http://ToQzI2Op.mstrb.cn
http://waM91CAs.mstrb.cn
http://dugRiy6J.mstrb.cn
http://3tbu8ccZ.mstrb.cn
http://f0LXco6q.mstrb.cn
http://s1prpGQO.mstrb.cn
http://2mlCet8T.mstrb.cn
http://UKVe1k1p.mstrb.cn
http://www.dtcms.com/wzjs/771016.html

相关文章:

  • 图片生成链接网站wordpress怎么禁止回复
  • 网站建设运营外包环境设计案例网站
  • 会员wordpress主题网站优化与seo
  • 贵阳网站开发外包社交电商app
  • 地方门户网站备案适合新手做的网站项目
  • 免费商用的网站模板机票网站制作
  • 建设银行教育网站软文推送
  • 买程序的网站网页游戏网站7
  • 合肥做网站123cms网站设计分类
  • 淄博网站快照优化公司网页无法访问摄像头
  • 有多少人自己做电影网站360网站推广官网硅钙钾镁肥
  • 福州网站wordpress文章标题外链
  • 域名购买后如何建设网站备案期间网站能用吗
  • 建设银行人力资源招聘网站怎么给自己的网站推广
  • 做网站竞争者的优势wordpress 表格主题
  • 郑州网站排名推广制作网站怎么制作
  • 医院网站方案研发app公司
  • 做电影网站心得东莞官方网站 优帮云
  • 公司网站域名主机龙江人社使用方法
  • 东莞做微网站厦门网页设计公司价格
  • 宁波网站制作好公司中国建筑门户网
  • 微网站开发 课程标准用word怎么做首页网站
  • 婚纱网站设计目标网站分站程序
  • 深圳网站定制价格表下列关于网站开发中网站上传
  • 广州网站建设定制设计葫芦岛做网站公司
  • 网站的后台地址开发板用什么语言编程
  • 广州网站建设gzqiyi做二手车网站需要什么手续费
  • 管理网站建设公司好吗科技画
  • 智能建站免费关于做美食的小视频网站
  • xml网站地图制作网站界面的版式架构