python3GUI--我的二维码生成工具By:PyQt5(附UI源码)

news2024/11/16 5:28:13

文章目录

  • 一.前言
  • 二.展示
    • 1.主界面
    • 2.主界面-选择颜色(动图)
    • 3.主界面-选择样式(动图)
  • 三.思路
    • 1.UI设计
    • 2.核心
    • 3.其他
      • 1.为什么调整了样式左侧二维码就跟着变化
      • 2.首次启动软件生成的文件哪里来的
      • 3.作者都参考了哪些资料
  • 四.总结


一.前言

本次开发一款二维码生成工具,用于离线生成二维码,二维码颜色、样式、中间图形均可自定义,是一款很实用的必备工具。撰写本篇记录下软件开发过程以及一些开发心得。老规矩,文件打包好放在了文末,大家可自取。

二.展示

1.主界面

双击exe或者运行本项目,会启动软件到主界面,下图为本软件的主界面。

2.主界面-选择颜色(动图)

通过在右侧输入文本,左侧会实时地生成二维码,右侧可选择配色,大家可自行搭配。

3.主界面-选择样式(动图)

除了选择颜色,还可以选择样式,本软件提供6种样式以供选择,默认选择第一种样式。

三.思路

1.UI设计

使用designer设计UI界面,使用uic工具将.ui文件转化为Python代码。软件整体布局垂直布局,局部布局为水平布局。

2.核心

本次主要使用了qrcode配合pillow最后用PyQt5绘制UI界面,通过对PIL的使用,将二维码与中心图形结合起来,生成一张完整的二维码图片,再使用qrcode相关API完成二维码的样式布局,最终调用PyQt5的相关方法把实时绘制出来的图形展示在左侧QLabel中,界面上的按钮都绑定了相关的槽函数,只要用户完成了相关的操作,满足了触发条件,就会去执行,这里的主要作用是控制UI和二维码的绘制。

3.其他

这里做几个基础问题回答。

1.为什么调整了样式左侧二维码就跟着变化

本次软件上多个组件绑定了一个槽函数,比如右侧QTextEdit、QColorDialog、样式选择Widget、下方中间图形配置,当软件监听到有参数改变了,左侧就会实时地生成二维码,组合出图片,并且保障当前至少有一个二维码可用。

2.首次启动软件生成的文件哪里来的

软件启动会检查相关配置文件,比如检查创建空目录、中间图形初始化等操作,这里说一下中间默认图形文件是怎么产生的:中间图形的数据源是项目的qrc文件生成的Python二进制文件,在QT中把这个图形作为QPixmap放在了QLabel上,软件启动时,调用QPixmap的.save方法存储到本地,当用到此配置文件时,直击从本地磁盘中读取,使用PIL把二维码和中间图形组合在一起。

3.作者都参考了哪些资料

本篇博文参考了一些文章,本项目的核心代码也是围绕着下方参考资料构建的,在此向各位大佬致敬!
[python] Python二维码生成器qrcode库入门
Python qrcode模块(生成二维码)
Python生成二维码的操作方法

四.总结

本次使用PyQt5开发了一款二维码生成工具,本次主打个实用,并没有精心去设计UI,小巧使用,点击链接get同款。本次篇幅较短,但也倾注了鄙人部分心血,无论是做调研还是软件开发,所以,能给我点个赞再走么?谢谢~
在这里插入图片描述

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

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

相关文章

华为8月8日将推出系统云翻新功能:P40/Mate 30系列首发

7月28日消息,7月28日消息,华为终端公司近日在微博上发布重要公告,宣布将于8月8日推出全新的系统云翻新功能。据悉,该功能将首次应用于华为 P40 系列手机和 Mate30 系列手机,为用户提供更便捷的手机数据备份和恢复体验。…

如何降低机场人员定位系统成本?哪种方案简单又好用?

一、方案简介 机场是一个室内空间巨大的人员聚集地差旅人员找不到出入口、卫生间、商铺为找检票口而误车等是很常见的现状。面对这些问题,机场信息数字化建设成为一种最为有效的解决方式! 华安联大通过多技术融合实现室内外位置健全,推出一…

【机密计算-大厂有话说】微软 Azure

什么是机密计算? 机密计算是由机密计算联盟 (CCC) 定义的一个行业术语,CCC 是专注于定义并加速机密计算落地的基金会。 CCC 给机密计算的定义是:通过在基于硬件的可信执行环境 (TEE) 中执行计算来保护使用中的数据。 TEE 是是一个只能执行授权…

Jetbrains idea 代码关闭 注释自动渲染 导致换行不生效

方法1 关闭注释自动渲染 取消勾选 方法2 结尾使用 <br> 强制换行

【Python】logging模块笔记

目录 日志级别 四个组件 记录器 处理器 处理器 格式化器 格式 用法1&#xff1a;小项目可以采用编程的方法 用法2&#xff1a;建议采用配置文件的方式 用法3&#xff1a; 字典配置 日志级别 #默认的日志输出为warning # 使用baseConfig() 来指定日志输出级别 # 同时&#x…

每日一题——找到消失的数字

找到消失的数字 题目链接 思路 一个长度为n的数组中所有数据的范围在[1,n]内&#xff0c;题目要求我们找出在[1,n]范围内&#xff0c;但数组中没有出现的数字 如果可以使用额外空间&#xff0c;那这题就好办了。我们直接创建一个相同大小的数组&#xff0c;数组的每个位置代…

三. 多传感器标定方案(空间同步)--2

前面的内容&#xff1a; 一. 器件选型心得&#xff08;系统设计&#xff09;--1_goldqiu的博客-CSDN博客 一. 器件选型心得&#xff08;系统设计&#xff09;--2_goldqiu的博客-CSDN博客 二. 多传感器时间同步方案&#xff08;时序闭环&#xff09;--1 三. 多传感器标定方案…

AI聊天GPT三步上篮!

1、是什么&#xff1f; CHATGPT是OpenAI开发的基于GPT&#xff08;Generative Pre-trained Transformer&#xff09;架构的聊天型人工智能模型。也就是你问它答&#xff0c;根据网络抓去训练 2、怎么用&#xff1f; 清晰表达自己诉求&#xff0c;因为它就是一个AI助手&#…

【腾讯云 Cloud Studio 实战训练营】Cloud Studio实现健康上报小程序(代码开源)

目录 &#x1f373;前言&#x1f373;实验介绍&#x1f373;产品介绍&#x1f373;注册Cloud Stdio&#x1f373;后端Spring服务&#x1f373;创建项目上传项目数据库连接与导入 &#x1f373;Vue后台管理创建项目编辑模板信息选择环境镜像上传资源文件 &#x1f373;小程序⭐总…

容器演进时间轴及容器技术演进

1.1 1979年 — chroot 容器技术的概念可以追溯到1979年的UNIX chroot。 它是一套“UNIX操作系统”系统&#xff0c;旨在将其root目录及其它子目录变更至文件系统内的新位置&#xff0c;且只接受特定进程的访问。 这项功能的设计目的在于为每个进程提供一套隔离化磁盘空间。 …

NIM游戏/SG函数

NIM游戏 先看一下一维 NIM游戏。 有一堆大小为 n 的石子&#xff0c;甲和乙轮流从石堆里面拿石子&#xff0c;不能一次拿掉所有石子&#xff0c;取走最后一个石子的人获胜&#xff0c;甲先开始&#xff0c;谁是必胜的&#xff1f; 显然&#xff0c;谁先手&#xff0c;谁就获胜…

蓝桥杯单片机第五届国赛 真题+代码

onewire.c /* # 单总线代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。2. 参赛选手可以自行编写相关代码或以该代码为基础&#xff0c;根据所选单片机类型、运行速度和试题中对单片机时钟频率的要求&#xff0c;进行代码调试和修改。 */// #include …

Opencv的Mat内容学习

来源&#xff1a;Opencv的Mat内容小记 - 知乎 (zhihu.com) 1.Mat是一种图像容器&#xff0c;是二维向量。 灰度图的Mat一般存放<uchar>类型 RGB彩色图像一般存放<Vec3b>类型。 (1)单通道灰度图数据存放样式&#xff1a; (2)RGB三通道彩色图存放形式不同&#x…

微服务性能分析工具 Pyroscope 初体验

Go 自带接口性能分析工具 pprof&#xff0c;较为常用的有以下 4 种分析&#xff1a; CPU Profiling: CPU 分析&#xff0c;按照一定的频率采集所监听的应用程序 CPU&#xff08;含寄存器&#xff09;的使用情况&#xff0c;可确定应用程序在主动消耗 CPU 周期时花费时间的位置…

数值线性代数:奇异值分解SVD

本文记录计算矩阵奇异值分解SVD的原理与流程。 注1&#xff1a;限于研究水平&#xff0c;分析难免不当&#xff0c;欢迎批评指正。 零、预修 0.1 矩阵的奇异值 设列满秩矩阵&#xff0c;若的特征值为&#xff0c;则称为矩阵的奇异值。 0.2 SVD(分解)定理 设&#xff0c;则…

❤ Redirected when going from “/login“ to “/“ via a navigation guard错误

❤ vue路由遇到 Redirected when going from “/login“ to “/“ via a navigation guard错误 路由版本&#xff1a;“vue-router”: “^3.5.2”, 添加了路由守卫&#xff0c;然后开始报这个错误&#xff0c; 原因 就是路由版本导致的 解决办法 // 导航守卫限制路由跳转 …

Jenkins插件管理切换国内源地址

一、替换国内插件下载地址 选择系统管理–>插件管理–> Available Plugins 并等待页面完全加载完成、这样做是为了把jenkins官方的插件列表下载到本地、接着修改地址文件、替换为国内插件地址 进入插件文件目录 cd /var/lib/jenkins/updatesdefault.json 为插件源地址…

比较两字符串数组中对应位置元素的大小char.greater()和char.less()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 比较两字符串数组中 对应位置元素的大小 char.greater()和char.less() [太阳]选择题 下列代码最后输出的结果是&#xff1f; import numpy as np x1 np.array([a, bc, D]) print("【显…

go 查询采购单设备事项V3

一、版本说明 本版本在整合上两次的功能基础上&#xff0c;引进ini配置文件的读取事项&#xff0c;快速读取本地配置文件&#xff0c;完成读取设置 第一版&#xff1a;实现了严格匹配模式的查找 https://blog.csdn.net/wtt234/article/details/131979385 第二版&#xff1a;实…

整数转换-C语言/Java

描述 整数转换。编写一个函数&#xff0c;确定需要改变几个位才能将整数A转成整数B。A&#xff0c;B范围在[-2147483648, 2147483647]之间。 示例1&#xff1a; 输入&#xff1a;A 29 &#xff08;或者0b11101&#xff09;, B 15&#xff08;或者0b01111&#xff09; 输出&…