在Python(PyQt)中创建QR码

问题描述 投票:3回答:3

我目前正在使用PyQt4和qrcode4.0.4

from PyQt4 import QtGui, QtCore
from PIL.ImageQt import ImageQt
import qrcode

class QRLabel(QtGui.QLabel):
    def __init__(self, text=""):
        super(QRLabel, self).__init__()
        self.setCode(text)

    def setCode(self, text=""):        
        self.text = text      
        qrImg = qrcode.make(text)
        imgQt = ImageQt(qrImg.convert("RGB"))   # keep a reference!
        pixm = QtGui.QPixmap.fromImage(imgQt)
        self.setPixmap(pixm.scaled(self.size(),QtCore.Qt.KeepAspectRatio))

如您所见,在屏幕上显示图像之前,需要克服几个障碍。 QR码从RGBA PIL图像开始,将其转换为RGB,然后转换为PIL ImageQt对象,然后转换为QPixmap,然后将其放置在具有缩放修复功能的QLabel上。

如果未显式存储imgQt引用,则在加载窗口小部件时会产生垃圾。

我的问题:有什么我可以做些改善的,因为似乎涉及很多转换。

python pyqt python-imaging-library qr-code qpixmap
3个回答
4
投票

3
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.