使用QRencode做二维码QR码生成

//qr.h
#ifndef QR_H
#define QR_H#include <qrencode.h>
#include <qimage.h>
#include <qstring.h>class QR
{
public:QR();//生产二维码QImage produceQR(const QString &info);public :static QImage produceQrTest(const QString &info);
};#endif // QR_H
//qr.cpp
#include "qr.h"#include <QPainter>
#include <QImage>QR::QR()
{}QImage  QR::produceQrTest(const QString &info)
{//放置二维码QImage dst;//绘制方块大小int scale = 4;//将字符串转字符集合,同时定义编码格式为UTF8QByteArray info_date = info.toUtf8();//调用libqrencode库进行编码QRcode* qr = QRcode_encodeString(info_date.constData(), 0, QR_ECLEVEL_Q, QR_MODE_8, 1);//绘制if (qr && qr->width > 0){//设置图像大小int img_width = qr->width * scale;//创建画布dst = QImage(img_width, img_width, QImage::Format_Mono);//创建油漆工QPainter painter(&dst);//填充白色背景painter.fillRect(0, 0, img_width, img_width, Qt::white);//设置画笔painter.setPen(Qt::NoPen);//设置黑色刷子painter.setBrush(Qt::black);//绘制二维码for (int y = 0; y < qr->width; y++){for (int x = 0; x < qr->width; x++){//绘制黑块if (qr->data[y*qr->width + x] & 1){QRect r(x*scale, y*scale, scale, scale);painter.drawRect(r);}}}QRcode_free(qr);}return dst;}
//调用
QImage qr = QR::produceQrTest(qstr);int x = ui->label_QRCode->size().width() - 20;
int y = ui->label_QRCode->size().height() - 20;
QSize size = QSize(x, y);m_QR_img = qr.scaled(size, Qt::KeepAspectRatio);ui->label_QRCode->setPixmap(QPixmap::fromImage(m_QR_img));

QRencode库


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/727554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# Mel-Spectrogram 梅尔频谱

目录 介绍 Main features Philosophy of NWaves 效果 项目 代码 下载 C# Mel-Spectrogram 梅尔频谱 介绍 利用NWaves实现Mel-Spectrogram 梅尔频谱 NWaves github 地址&#xff1a;https://github.com/ar1st0crat/NWaves NWaves is a .NET DSP library with a lot …

操作系统的基本概念3-设备管理

设备管理是指对计算机系统中的硬件设备进行管理和控制的一系列操作。它包括设备的配置、安装、更新、监控和故障排除等方面的工作。设备管理的目标是确保计算机系统中的硬件设备能够正常运行&#xff0c;并且能够满足用户的需求。 设备管理的主要任务包括以下几个方面&#xf…

计算机mfc140.dll文件缺失的修复方法分析,一键修复mfc140.dll

电脑显示mfc140.dll文件缺失信息时&#xff0c;不必担心&#xff0c;这通常是个容易解决的小问题。接下来让我们详细探究并解决mfc140.dll文件缺失的状况。以下将详述相应的解决方案&#xff0c;从而帮助您轻松克服这一技术难题。通过几个简单步骤&#xff0c;即可恢复正常使用…

elementUI表单验证遇到的问题

1.同一个addForm表单&#xff0c;同样的验证规则&#xff0c;有的输入框在没填写时能够显示红色&#xff0c;有的却毫无反应 解决方案&#xff1a;去elementUI官网看了一下验证表单的规则及属性&#xff0c;第一句就写 Form 组件提供了表单验证的功能&#xff0c;只需要通过 r…

网工内推 | 上市公司售前,大专以上即可,最高15K*13薪,补贴多

01 北京神州新桥科技有限公司 招聘岗位&#xff1a;售前工程师 职责描述&#xff1a; 1、完成项目的售前技术支持工作&#xff1b; 2、 配合销售进行新产品及解决方案的推广工作&#xff1b; 3、 配合销售完成用户的售前技术交流方案准备、现场技术交流、技术方案宣讲等工作…

在PyCharm中使用Jupyter Notebooks实现高效开发

大家好&#xff0c;在数据科学领域&#xff0c;Jupyter Notebooks已成为一种流行的工具&#xff0c;许多专业人士都在使用它来进行数据分析、机器学习等任务。有时&#xff0c;我们希望在更加强大、功能齐全的IDE环境中运行Jupyter笔记本&#xff0c;以提高工作效率和开发体验。…

JavaScript Web Storage 详解

Web Storage 定义了两个对象用于存储数据&#xff1a;sessionStorage 和 localStorage。 sessionStorage 用于严格保存浏览器一次会话期间的数据&#xff0c;因为数据会在浏览器关闭时被删除。localStorage 用于会话之外持久保存数据。 Web Storage ​ Web Storage 最早是网…

基于SpringBoot+Vue 的专家医院预约挂号系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

SAP PP学习笔记 - 豆知识08 - 如何修改价格

正常的品目修改用MM02。 新建一个品目之后&#xff0c;啥都没干&#xff0c;现在想修改一下价格&#xff0c;发现MM02 修改不了了。 1&#xff0c;MR21 这里注意 转记日付 要和会计期间一致。 比如我这里的会计期间是 2024/03 有关会计期间&#xff0c;可以参照如下文章&am…

9. Go语言配置管理神器Viper的基本使用

文章目录 导言一、把值存入Viper1. 建立默认值2. 读取配置文件3. 写入配置文件4. 监控并重新读取配置文件5. 从io.Reader读取配置6. 覆盖设置7. 注册和使用别名8. 使用环境变量9. 使用Flags10. 远程Key/Value存储支持 二、从Viper获取值1. 访问嵌套的键2. 提取子树3. 反序列化4…

《LeetCode力扣练习》代码随想录——二叉树(平衡二叉树---Java)

《LeetCode力扣练习》代码随想录——二叉树&#xff08;平衡二叉树—Java&#xff09; 刷题思路来源于 代码随想录 110. 平衡二叉树 二叉树-后序遍历 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode…

数据结构实验:二叉排序树

题目描述 对应给定的一个序列可以唯一确定一棵二叉排序树。然而&#xff0c;一棵给定的二叉排序树却可以由多种不同的序列得到。例如分别按照序列{3,1,4}和{3,4,1}插入初始为空的二叉排序树&#xff0c;都得到一样的结果。你的任务书对于输入的各种序列&#xff0c;判断它们是否…

CSS3笔记

1.相同优先级的样式以写在后面的为主。 2.交集选择器&#xff0c;并且 条件挨在一起 p.rich{...} /*p元素class有rich的元素*/ 3.并集选择器&#xff0c;或者 逗号隔开 .class1,class2{...}/*满足其中一个类名都会使用该样式*/ 4.后代选择器 空格 隔开 所有符合的包括孙子及…

JAVA语言基础 JAVA入门

注释 单行注释&#xff1a;用双斜线 // 表示 多行注释&#xff1a;用 /*------------------*/ 表示 文档注释&#xff1a;用 /**-----------------*/ 表示 分隔符 常见的分隔符有&#xff1a;分号 ; 花括号 {} 方括号 [ ] 圆括号 () 空格 圆点 . 在 Java 语言中每一条…

2024_01蓝桥杯STEMA 考试 Scratch 中级试卷解析​​​​​​​

2024_01蓝桥杯STEMA 考试 Scratch 中级试卷解析一、选择题第一题、运行下列哪段程序后,蜜蜂会向上移动?(C ) 第二题、运行以下程序,输入下列哪个数后,角色会说“未通过”?( D) A. 90 B. 85 C. 60 D. 58第三题、运行以下程序后,n 的值为(B )。 A. 17 B…

C++数据结构与算法——二叉搜索树的修改与构造

C第二阶段——数据结构和算法&#xff0c;之前学过一点点数据结构&#xff0c;当时是基于Python来学习的&#xff0c;现在基于C查漏补缺&#xff0c;尤其是树的部分。这一部分计划一个月&#xff0c;主要利用代码随想录来学习&#xff0c;刷题使用力扣网站&#xff0c;不定时更…

【SpringBoot】-- 实现本地文件/图片上传到服务器生成url地址

在java项目中你可能会有以下需求&#xff1a;用户上传本地图片&#xff0c;然后展示在网页上。本篇文章将使用阿里云oss实现上传图片到oss&#xff0c;oss生成url。 一、准备工作 首先进入阿里云&#xff0c;按如下操作 进入创建页面&#xff0c;修改读写权限为公共读 然后进…

Android耗电分析之Battery Historian工具使用

Battery-Historian是谷歌推出的一款专门分析Bugreport的工具&#xff0c;是谷歌在2015年I/O大会上推出的一款检测运行在android5.0(Lollipop)及以后版本的设备上电池的相关信息和事件的工具&#xff0c;是一款对于分析手机状态&#xff0c;历史运行情况很好的可视化分析工具。 …

【网络原理】初识网络原理

目录 &#x1f384;网络发展史&#x1f338;独立模式&#x1f338;网络互连&#x1f33b;局域网LAN&#x1f33c;基于网线直连&#x1f33c;基于集线器组建&#x1f33c;基于交换机组建&#x1f33c;基于交换机和路由器组建 &#x1f33b;广域网WAN &#x1f333;网络通信基础&…

学习网络安全越早知道越好的事

网络安全专业最应该知道的血泪建议&#xff0c;希望大一就有人告诉你。 如果你是网络安全行业&#xff0c;那么大学四年千万不能就在宿舍打游戏度过&#xff0c; 大一你应该学习掌握基础的编程语言&#xff0c;比如Python&#xff0c;PHP&#xff0c;web前端&#xff0c;知道…