Python一小时开发彩色动态二维码生成器,并使用虚拟化境进行打包发布EXE程序。

本文介绍了使用Python的MyQR库创建彩色动态二维码的全过程,包括UI设计、功能实现和虚拟环境打包成EXE程序。通过tkinter库构建图形界面,支持多种图片格式转换,详细讲解了每个实现步骤,适合初学者实践。
摘要由CSDN通过智能技术生成


前言

初学Python的时候学到过这个项目,感觉很神奇!通过调用MyQR库实现彩色二维码的合成。在这里我不介绍这个库了,感兴趣的可以自己去搜索,有很多相关的详细教程。

最初很想把它分享给好朋友,无奈不会编写图形界面,一直就存在了自己的博客草稿箱里,今天终于可以把它编写出来分享给大家了,超级开心!

下面的代码讲解部分都是一块一块的比较零碎,最后有完整的代码。包括文末的虚拟环境打包发布EXE程序教程编辑在石墨文档,讲的已经很详细了,不懂得可以私聊我。

效果图

在这里插入图片描述

核心功能设计

支持.png、.jpg、.gif、.bmp格式的转换,素材图片自己挑选。

UI排版布局

程序需要的变量不多,共三个输入项:“二维码解析链接”、“素材名”、“成品名”,由于解析链接的输入框较长,所以居中布局,剩下的“素材名”、“成品名”的输入框较短,所以左右对称布局,这样就整体呈现出“对称、标齐”的效果。
在这里插入图片描述

素材分为.png、.jpg、.gif、.bmp格式,采用Checkbutton勾选项部件,根据自己的素材类型进行勾选即可!这样生成的图片也与素材格式类型保持一致。

在这个基础上设计的比较简单,除了颜色的美化,并没有插入一些图片进行修饰,大家可以在这个基础上进行二次开发。

关于图形界面的设计思想

图形界面我采用的是Python自带的tkinter库,我认为图形界面的学习并不是难的,当你熟练之后,你就会发现,他就是一个“窗口+部件+函数”的一个流程,窗口为我们进一步的设计提供好“容器”,部件为我们所实现的功能打下“基础”,而函数则是我们通过按钮的触发所实现的“功能”。

实现步骤(一):从搭建起一个界面开始

界面就相当于一个画板,有了画板我们才能在上面作画。除此之外,我们还需要准备一些颜料,这样才能让画作丰富多彩,而界面也有很多的装饰,比如界面的标题、图标、尺寸这些。

from tkinter import *
import tkinter as tk

TOP6 = Tk()#初始化一个窗口
TOP6.geometry("575x375")#为这个窗口设置尺寸大小
TOP6.iconbitmap('图标.ico')#指定窗口图标
TOP6.title('彩色动态二维码生成器V1.0')#给窗口取一个名字
TOP6.mainloop()#窗口循环

在这里插入图片描述

如何得到.ico格式的图标?

用Python给喜欢的女孩写一个办公小工具,她说棒极了!这篇博文中,我们曾讲解过。

首先在选取自己心仪的图片,然后在图标在线转换网站进行转换即可。

只要图片不是太大都是免费的。
在这里插入图片描述

实现步骤(二):在界面中添加功能部件

根据UI设计我们需要四种部件:标签(说明数据类型)、输入框(接受数据)、Checkbutton勾选项部件(选择素材格式类型)、按钮(触发功能功能函数)。

#二维码解析链接
label = StringVar()
input_name = Label(TOP6, text='二维码解析链接', font=('楷体', 20)).place(x=175, y=20)
entry20 = Entry(TOP6, bg='#ffffff', width=30, textvariable=label, font=('楷体', 20)).place(x=75, y=80)

#素材类型选项
var1 = StringVar()
var1.set("F")
c = tk.Checkbutton(TOP6, text=".jpg", variable=var1, onvalue="T", offvalue="F")
c.grid(row=30, column=0, sticky=W)
c.place(x=100, y=125)

var2 = StringVar()
var2.set("F")
c = tk.Checkbutton(TOP6, text=".png", variable=var2, onvalue="T", offvalue="F")
c.grid(row=30, column=0, sticky=W)
c.place(x=200, y=125)

var3 = StringVar()
var3.set("F")
c = tk.Checkbutton(TOP6, text=".gif", variable=var3, onvalue="T", offvalue="F")
c.grid(row=30, column=0, sticky=W)
c.place(x=300, y=125)

var4 = StringVar()
var4.set("F")
c = tk.Checkbutton(TOP6, text=".bmp", variable=var4, onvalue="T", offvalue="F")
c.grid(row=30, column=0, sticky=W)
c.place(x=400, y=125)

#素材名
label2 = StringVar()
input_name = Label(TOP6, text='素材名', font=('楷体', 20)).place
  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值