Python 【生成二维码和条形码】

一.概述
最近在学习Python , 编写了一个能生成二维码和条形码的窗体。利用窗体上的输入Entrance,可以输入需要编码的原始数据,分别点击按钮可以生成二维码和条形码。分别点击窗体上的按钮,预览,打印,另存为就可以调用Windows上的画笔应用, 实现相对应的操作功能。生成的二维码可以使用手机读取信息, 条形码可以使用扫描枪读取内容。
以下是窗体的效果图片:
在这里插入图片描述

二.准备工作

1.使用pip install qrcode 安装 qrcode 模块,用该模块生成二维码图像文件;
2.使用pip install python-barcode[images]安装barcode 模块,用该模块生成条形码图像文件;
barcode模块支持EAN, 13.EAN 14,ISBN 13,CODE 128 等11种编码规则生成条形码。

三.窗体实现代码

Created on Tue Mar 10 11:26:46 2020

@author: guowen
"""
import os
import tkinter as tk
import qrcode
import barcode #导入Barcode 模块
from barcode.writer import ImageWriter
def gettingdata1():   #获取生成二维码的信息
    a=entry1.get()
    data=str(a)
    return data
def makeQrCode(data): #生成二维码
    qr=qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4)   
    qr.add_data(data)
    qr.make(fit=True)
    img=qr.make_image(fill_color='pink',back_color='green')
    img.save(f'C:/python/QR Code image/{data}.jpg') #利用F字符数函数把生成的图像文件保存在指定目录下
    img.show()
    entry1.delete(0,tk.END)
def operation():
    os.system('mspaint')   #调用win 画笔APP实现图像预览,打印,另存为   
def gettingdata2():   #获取生成条形码信息
    a=entry1.get()
    data=str(a)
    return data
def gettingbarcode(data): #生成条形码
    img=barcode.get('ean13',data,writer=ImageWriter()) # "ean13"此处可以输入不同的编码规则
    img.save(f'C:/python/QR Code image/{data}') 
    #img.show()
    entry1.delete(0,tk.END)
win=tk.Tk() #创建窗体
win.title('QR Code & Barcode')
win.geometry('600x400')
lab1=tk.Label(win,text='请输入信息',relief=tk.GROOVE)
lab1.place(relx=0.12,rely=0.1,relwidth=0.2,relheight=0.1)
entry1=tk.Entry(win) #输入信息
entry1.place(relx=0.45,rely=0.1,relwidth=0.5,relheight=0.1)
btn1=tk.Button(win,text='生成二维码',command=lambda:makeQrCode(gettingdata1()))
btn1.place(relx=0.12,rely=0.4,relwidth=0.33,relheight=0.1)
btn2=tk.Button(win,text='生成条形码',command=lambda:gettingbarcode(gettingdata2()))
btn2.place(relx=0.6,rely=0.4,relwidth=0.3,relheight=0.1)
btn3=tk.Button(win,text='预览',command=operation)
btn3.place(relx=0.12,rely=0.75,relwidth=0.2,relheight=0.1)
btn4=tk.Button(win,text='打印',command=operation)
btn4.place(relx=0.42,rely=0.75,relwidth=0.2,relheight=0.1)
btn5=tk.Button(win,text='另存为',command=operation)
btn5.place(relx=0.71,rely=0.75,relwidth=0.2,relheight=0.1)
win.mainloop()

四.编码图像效果图片
在这里插入图片描述
在这里插入图片描述
这是应用第一版,以后改进为可以批量生成二维码和条形码。

首次在CSDN写博客, 不当之处在所难免, 请大家指正。

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值