摘要:在高速发展的今天,手机对我们的重要性不言而喻,二维码的诞生,大大的方便了信息的交互,如购物、乘车、吃饭等等。本软件是采用Python设计的一款二维码转换器,功能是将名片上的信息转化成二维码,而生成的二维码印刷在名片上,手机扫一下可以提取到名片上的信息,实现便捷的存储。
关键词:Python 名片 二维码 转换器
Abstract :In today's rapid development, the importance of the mobile phone to us it is understood that the birth of the qr code, greatly facilitates the interaction of information, such as shopping, driving, eating, and so on. This software is designed using Python a qr code converter, achieve rapid business card information into the qr code, and the generated qr code printed on the card, phone to sweep can extract the information of business card, convenient storage.
key words :Python card qr code converters
在“一帶一路”国际合作高峰论坛举行期间,20国青年投票选出中国的“新四大发明”:高铁、扫码支付、共享单车和网购;其中扫码支付是指手机通过扫描二维码跳转到支付页面,再进行付款,这就体现出了二维码给生活带来的便利;于是我就利用Python设计一款软件,让名片上的信息也可以二维码扫描获取,方便了名片信息的存储,操作简单方便,为公司或企业等单位制作带有二维码的名片提供便利。Python的版本3.6.0,使用的扩展库有:tkinter、qrcode 、PIL、pyinstaller等,下面将简单介绍制作过程:
一、窗体的制作
Python提供了多个图形开发界面库,常用的Python GUI有tkinter、wxPython和Jython等。此次制作我采用的是tkinter库,因为它是Python 的标准 GUI 库,直接内置在 python 的安装包中,只要安装好 Python 之后就能使用。
使用到的部件有label(标签,显示一个文本或图像)、button(按钮,用来执行一个命令或别的操作)和entry(文本框,单行文本输入)。注意在tkinter中窗口部件是没有分级的,所有的窗口部件类在树种都是兄弟关系。tkinter控件采用特定的几何状态管理方法:pack(包装)、grid(网格)和place(位置)来管理整个控件组织,我采用的是place()方法。以下是部分代码:
import tkinter #导入tkinter库
tk=tkinter.Tk()
tk.title('名片二维码转换器(甘润生)')#给窗体标题命名
#制作标签及位置放置
labelname=tkinter.Label(tk,text='姓名',justify=tkinter.RIGHT,width=80)
labelname.place(x=10,y=5,width=80,height=20)
#创建字符串变量和文本框组件,同时设置关联变量
varname=tkinter.StringVar(tk,value='')
enname=tkinter.Entry(tk,width=80,textvariable=varname)
enname.place(x=100,y=5,width=200,height=20)
#制作按钮:
buttonconversion=tkinter.Button(tk,text='转换二维码',command=conversion)
buttonconversion.place(x=50,y=110,width=80,height=20)
二、二维码的转换
二维码(2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;因此,在转换的过程中,离不开编码压缩方式,常用的码制有:Data Matrix, QR Code等等,现实中流行的是 QR code 码制,所以,二维码又被称为 QR code;QR code 是一种矩阵式二维条码(又称棋盘式二维条码),它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。
Python中的二维码库有很多:qrcode、myqr、Zxing等,我采用qrcode库,可以通过 pip install XXX 来进行安装。具体过程是将输入的信息逐个的存到文件中,然后在全部提取出来,经过qrcode和image来生成二维码图片,部分程序如下:
#转换成二维码
q=qrcode.main.QRCode(version=3)
q.add_data(string)
m=q.make_image()
m.save(name+'.png') #以输入的姓名为文件名来存储二维码图片
三、文件的打包,生产EXE可执行文件
虽然现在倡导开源,但是很多人还是喜欢操作简单的程序,打包成exe文件不仅方便人们进行使用,还能让哪些没有安装PY环境的电脑能够运行软件,同时也对代码进行了加密,防止胡乱修改而不能运行。目前对python代码打包成exe的方式有:py2exe、pyinstaller、cx_Freeze等,而我采用的是pyinstaller,因为pyinstaller具有除了win32平台外还支持Linux和Unix平台、智能支持python的第三方模块如PyQt和外部数据文件等、支持EGG格式文件、可以选择exe文件图标(Windows only)等等特点。
通过 pip install pyinstaller来安装该库,安装成功后采用 pyinstaller –F -w XXXXXX.py来打包成单个EXE文件。文件默认位置是C:\Users\Administrator\dist
四、运行与结果分析
点击mingpian.exe運行,弹出窗口,输入信息,点击“转换二维码”按钮,生成相应的二维码图片,再点击“清空”按钮,重新输入信息,生成新的二维码。打开二维码,扫描一下,成功获取了名片上的信息。注意:二维码文件存放在在C:\Users\Administrator\dist文件中。
本次设计都实现了预期的结果,成功的将名片上的信息转为二维码,方便手机扫描,复制粘贴,操作方法简单,大大的提高了信息的利用率;此次练习让我加深了对tkinter、qrcode等相关知识的理解,同时也增加了对于python的学习兴趣。该款软件设计的比较简单,还有许多空间可以改进,如设计窗体的背景,修饰生成exe文件的图标,修改二维码没有LOGO等等。
参考文献
1.张若愚,Python科学计算[M]. 清华大学出版社 , 2016
2.史梦楚,Python语言的探讨[J]. 中国新通信,2017(07)
3.Jason Briggs【美】(著),尹哲(译),趣学Python编程,人民邮电出版社,2014
4.Kenneth A.Lambert【美】(著),李军(译),数据结构(Python语言描述),人民邮电出版社,2019