问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
from tkinter import * #引入tkinter库
from PIL import Image #引入PIL库的Imgae子模块
from PIL import ImageTk #引入PIL库的ImageTk子模块
import qrcode #引入qrcode库
root = Tk() #新建窗口
root.title('二维码生成器') #窗口标题
img = qrcode.make('https://www.codemao.cn') #将这个网站转换为二维码图片
img.save('./hello.png') #保存二维码图片到本地 【这句话运行不了】
img = Image.open('hello.png') #打开本地二维码图片
img = ImageTk.PhotoImage(img) #根据本地图片生成窗体图片
t = Text(root, height=10, font=("黑体", 15)) #在窗体嵌入输入框
t.grid(row=0, column=0, padx=10, pady=5) #输入框的位置
def create_qrcode(text, filename):
"""
生成二维码图片
"""
qr = qrcode.QRCode(
version=None,
error_correction=qrcode.ERROR_CORRECT_H,
box_size=5,
border=1
)
qr.make(fit=True)
qr.add_data(text)
# fill_color和back_color参数改变生成图片的格子颜色和背景颜色
img = qr.make_image(fill_color="Tan", back_color="white")
img.save(filename + '.png')
def callback():
# 获取文本框内的内容
text_input = t.get(0.0, "end")
# 定义图片的名字为输入内容的第一个字符
img_name = text_input[0:1]
#生成二维码图片
create_qrcode(text_input, img_name)
#保存二维码图片至本地
img = Image.open(img_name + '.png')
#设定图片大小
img = img.resize((500, 500))
#重新在窗体中显示新生成的二维码图片,覆盖刚才的图片
img = ImageTk.PhotoImage(img)
label.configure(image=img)
label.image = img
btn = Button(root, text='点我生成二维码', width=20, font=("黑体", 30), command=callback) #按钮,按钮相应函数 callback
btn.grid(row=1, column=0, pady=20) #按钮位置
label = Label(root, image=img, width=500, height=500) #嵌入二维码图片
label.grid(row=2, column=0) #二维码图片位置
root.mainloop()
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果