python生成二维码 GUI

1.首先导入qrcode库,直接用pip下载就行

pip install qrcode

如果导包没有报错就说明安装成功
在这里插入图片描述
2.制作字符串转换的二维码
这里还要借助 datetime 和 getpass 两个库,来获取带时间的图片名和系统的用户名

import qrcode
import datetime       # 导入datetime库用于生成带时间的图片名
import os, getpass    # 导入getpass库用于获取系统的用户名
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)
# wangzhi = ('https://baidu.com')
qr.add_data('https://baidu.com')
qr.make(fit=True)
img = qr.make_image(fill_color="black", back_color="white")
# 获取当前时间
timenow = datetime.datetime.now()
# 转换成字符串
timestr = timenow.strftime("%Y-%m-%d-%H-%M-%S")
# 生成带时间的二维码图片名,保存在桌面上
qrname = "C:\\Users\\{0}\\Desktop\\{1}.png".format(getpass.getuser(),timestr)
print("Save as :", qrname)

# 保存二维码图片
img.save(qrname)
print("Success!")

输入需要转换的网址即可生成二维码,并以时间为名保存在桌面在这里插入图片描述

扫描上图即可进入csdn的主页

3.然后用GUI封装一下

import qrcode
import datetime       # 导入datetime库用于生成带时间的图片名
import os, getpass    # 导入getpass库用于获取系统的用户名
import tkinter as tk
import tkinter
import pickle
from tkinter import messagebox
# import qrcode    # 导入qrcode库, 用于生成二维码
# import datetime  # 导入datetime库用于生成带时间的图片名
# import os, getpass  # 导入getpass库用于获取系统的用户名

# 实例化窗口
window=tk.Tk()
# 定义窗口标题
window.title('自定义二维码')
# 定义窗口大小
window.geometry('450x300')

# 定义网址,文字的文本位置
tk.Label(window,text='网址').place(x=50,y=150)
tk.Label(window,text='文字').place(x=50,y=190)

# 定义网址窗口
new_wangzhi=tk.StringVar()
new_wangzhi.set('http://www.')   # 定义网址窗口默认显示内容
new_wangzhi=tk.Entry(window,textvariable=new_wangzhi)
new_wangzhi.place(x=160,y=150)

# 定义文字窗口
new_wenzi=tk.StringVar()
new_wenzi=tk.Entry(window,textvariable=new_wenzi)
new_wenzi.place(x=160,y=190)


# 网址转换二维码
def one():

    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=10,
        border=4,
    )
    wangzhi = new_wangzhi.get()
    qr.add_data(wangzhi)
    qr.make(fit=True)
    img = qr.make_image(fill_color="black", back_color="white")
    # 获取当前时间
    timenow = datetime.datetime.now()
    # 转换成字符串
    timestr = timenow.strftime("%Y-%m-%d-%H-%M-%S")
    # 生成带时间的二维码图片名,保存在桌面上
    qrname = "C:\\Users\\{0}\\Desktop\\{1}.png".format(getpass.getuser(),timestr)
    print("Save as :", qrname)
    # 保存二维码图片
    img.save(qrname)
    messagebox.showinfo( "保存成功!")

# 字符串转换二维码
def two():

    # 输入待转换的字符串
    wenzi = new_wenzi.get()
    # qrstr = input(wenzi)
    # print("Input :" + qrstr)

    # 采用默认方式生成二维码
    img = qrcode.make(wenzi)

    # 获取当前时间,转化成字符串
    timenow = datetime.datetime.now()
    timestr = timenow.strftime("%Y-%m-%d-%H-%M-%S")

    # 生成带时间的二维码图片名,图片保存在桌面上
    qrname = "C:\\Users\\{0}\\Desktop\\{1}.png".format(getpass.getuser(), timestr)
    # print("Save as :", qrname)
    img.save(qrname)
    messagebox.showinfo( "保存成功!")


# 定义 生成 按钮
btn_sign_up=tk.Button(window,text='网址转换',command=one)
btn_sign_up.place(x=310,y=145)

btn_sign_up=tk.Button(window,text='文字转换',command=two)
btn_sign_up.place(x=310,y=185)


window.mainloop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值