我试图在tkinter GUI中显示二维码,但是当我执行此代码时:
import tkinter as tk
from PIL import Image,ImageTk
import pyqrcode
from tkinter.font import Font
import random
root=tk.Tk()
root.title("QR Lottery")
root.config(bg="white")
# Defining Fonts
TitleFont = Font(family="HEX:gon Staggered 2", size="48")
def generateQR():
num=random.randint(1,2)
if num==1:
QRCode=pyqrcode.create("You Win!")
QRCode.png("QRCode.png",scale=8)
img = Image.open('QRCode.png')
QRCodeImg = ImageTk.PhotoImage(img)
QRCodeLabel=tk.Label(image=QRCodeImg)
QRCodeLabel.grid(row=2,column=1)
else:
QRCode=pyqrcode.create("You Lose!")
QRCode.png("QRCode.png",scale=8)
img = Image.open('QRCode.png')
QRCodeImg = ImageTk.PhotoImage(img)
QRCodeLabel=tk.Label(image=QRCodeImg)
QRCodeLabel.grid(row=2,column=1)
#Labels
TitleLabel=tk.Label(text="qr lottery",bg="white",font=TitleFont)
TitleLabel.grid(row=1,column=1,columnspan=5)
ButtonQR=tk.Button(text="Generate!",bg="white",command=generateQR)
ButtonQR.grid(row=3,column=1)
root.mainloop()
产生的图像标签是一个空白正方形。我不知道为什么会这样,因为我把背景色留白了。在
使用以下方法:
通过从^{继承来定义您自己的小部件
QRCodeLabel
。仅使用参数
parent
初始化使用传递的
QRCode
和 另存为PNG
文件。在从
PNG
文件创建图像对象。Tkinter可以自己处理
PNG
图像文件,不需要PIL
。在使用
self.image
配置此Label
用Python:3.5测试
相关问题 更多 >
编程相关推荐