栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

用python制作简单的二维码生成器

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用python制作简单的二维码生成器

疫情当下,如何制作一个这样的简单“绿码”呢?(当然不能当健康码用)

首先,你需要准备好这些python库,有些库python自带,如果没有可以pip install自行安装

import tkinter as tk
from tkinter import ttk
from PIL import ImageTk
import qrcode

其次,需要用tk创建一个基础的界面

window = tk.Tk()
window.title('二维码生成器')
window.geometry('450x270')

然后,在界面中输入文字,并调整好位置

tk.Label(window, text='网址').place(x=20, y=20)
tk.Label(window, text='颜色').place(x=20, y=60)
tk.Label(window, text='版本').place(x=20, y=100)
tk.Label(window, text='容错率').place(x=20, y=140)
tk.Label(window, text='版本号支持: 1~5').place(x=20, y=170)
tk.Label(window, text='容错率值: H->30%,Q->25%,M->15%,L->7%').place(x=20, y=190)

 再者,在相应位置插入文本框

var_web = tk.StringVar()
entry_web = tk.Entry(window, textvariable=var_web, width=23)
entry_web.place(x=80, y=20)

var_color = tk.StringVar()
# 颜色设置采用下拉菜单
entry_color = ttk.Combobox(window, textvariable=var_color, width=20)  
entry_color.pack()
entry_color["value"] = ("red", "blue", "black", "green")      # 设置二维码颜色        
entry_color.current(2)
entry_color.place(x=80, y=60)

var_version = tk.StringVar()
entry_version = tk.Entry(window, textvariable=var_version, width=23)
entry_version.place(x=80, y=100)

var_fault = tk.StringVar()
entry_fault = tk.Entry(window, textvariable=var_fault, width=23)
entry_fault.place(x=80, y=140)

最后 ,补齐主要函数以及按键

​
def create_qrcode():
    qr = qrcode.QRCode(
        version=var_version.get(),
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=5,
        border=1
    )
    if var_fault.get() == 'H' or var_fault.get() == 'h':
        qr.error_correction = qrcode.constants.ERROR_CORRECT_H
    if var_fault.get() == 'Q' or var_fault.get() == 'q':
        qr.error_correction = qrcode.constants.ERROR_CORRECT_Q
    if var_fault.get() == 'M' or var_fault.get() == 'm':
        qr.error_correction = qrcode.constants.ERROR_CORRECT_M
    if var_fault.get() == 'L' or var_fault.get() == 'l':
        qr.error_correction = qrcode.constants.ERROR_CORRECT_L
    qr.make(fit=True)
    qr.add_data(f"{var_web.get()}")
    img = qr.make_image(fill_color=f'{var_color.get()}', back_color='white')
    img_p = ImageTk.PhotoImage(img)
    igp = tk.Label(window, image=img_p, bg="black")
    igp.img_p = img_p
    igp.pack()
    igp.place(x=260, y=10, width=180, height=180)


btn_create = tk.Button(window, text='创建二维码', command=create_qrcode, width=20)
btn_create.place(x=150, y=220)

window.mainloop()

​

拿我的博客试一试 

二维码的版本有1~40,但太高的版本号图片更大,因为界面面积有限,所以只支持1~5号,过高的版本号无法在该界面正确表示,但也可以根据自己的需要设置界面大小来获取更高的版本号。 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/863826.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号