我正在开发一个使用 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'
谢谢
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()