我目前使用PyQt4和qrcode4.0.4。在Python中创建QR码(PyQt)
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引用,那么当您加载小部件时,您会收到垃圾信息。
我的问题:有什么我可以做,以改善这一点,因为它似乎有这么多的转换涉及。