如何在pyqt5中添加QR图像?

问题描述 投票:0回答:1

我正在开发一个使用 QR 图像的项目,我必须将链接转换为 QR 图像

之后我必须在窗口上显示图像。

我正在使用qrcode库,它提供了一种将图像转换为QImage的方法,我可以直接在窗口上设置它,而无需在读取后将其保存为文件。

我不想将其保存为文件,只是我想阅读它。

但是当我尝试这样做时出现错误。

这是测试代码:

from PyQt5 import QtWidgets
from PyQt5 import QtGui
import sys
import qrcode



qr_coda_as_an_image = qrcode.make("Link")
qr_coda_as_an_image = qr_coda_as_an_image.get_image()
qr_coda_as_an_image = qr_coda_as_an_image.toqimage()


app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.resize(800,500)
window_layout = QtWidgets.QGridLayout()


image = QtGui.QPixmap.fromImage(qr_coda_as_an_image)


first_widget = QtWidgets.QLabel()
first_widget.setPixmap(image)



window_layout.addWidget(first_widget)
window.setLayout(window_layout)
window.show()
app.exec()

我制作它时它正在工作,但经过几次编辑后我打破了它,我已经尝试了 5 个小时来找到问题或解决它,但我失败了。

这是错误:

TypeError: fromImage(QImage, flags: Union[Qt.ImageConversionFlags, Qt.ImageConversionFlag] = Qt.AutoColor): argument 1 has unexpected type 'ImageQt'

谢谢

python python-3.x pyqt pyqt5 qr-code
1个回答
0
投票
pip install qrcode[pil] PyQt5

这是清理后的代码:

from PyQt5 import QtWidgets, QtGui
import sys
import qrcode

def generate_qr_image(content):
    qr_code_as_image = qrcode.make(content)
    image = qr_code_as_image.get_image().convert("RGBA")  # Ensure the image format
    return image.toqimage()

app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QWidget()
window.resize(800, 500)
window_layout = QtWidgets.QGridLayout()

qr_content = "https://example.com"  # Replace with your link
qr_image = generate_qr_image(qr_content)
pixmap = QtGui.QPixmap.fromImage(qr_image)

label = QtWidgets.QLabel()
label.setPixmap(pixmap)

window_layout.addWidget(label)
window.setLayout(window_layout)
window.show()
app.exec()
© www.soinside.com 2019 - 2024. All rights reserved.