小编Ste*_*els的帖子

在 Python (PyQt) 中创建 QR 码

我目前正在使用 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))
Run Code Online (Sandbox Code Playgroud)

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

如果您没有显式存储 imgQt 引用,则在加载小部件时会得到垃圾。

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

python qr-code pyqt qpixmap python-imaging-library

4
推荐指数
1
解决办法
3733
查看次数

标签 统计

pyqt ×1

python ×1

python-imaging-library ×1

qpixmap ×1

qr-code ×1