⚙️ 参数设置
4
💡 使用说明:
1. 输入需要转换的内容(文本、网址等)
2. 调整尺寸和边框参数
3. 点击生成按钮
4. 右键图片保存或截图
👁️ 预览效果
'''
Function: 二维码生成器
Author: Charles
'''
import io
import sys
import qrcode
from PyQt5 import QtWidgets, QtGui
from PyQt5.QtWidgets import QApplication, QGridLayout, 
    QLabel, QLineEdit, QPushButton, QComboBox, 
    QSpinBox, QFileDialog, QDialog


class qrcodeGUI(QtWidgets.QWidget):
    def __init__(self, parent=None):
        super().__init__()
        self.setFixedSize(600, 400)
        self.setWindowTitle('二维码生成器')
        self.grid = QGridLayout()
        
        # UI组件初始化...
        self.content_label = QLabel('内容:')
        self.content_edit = QLineEdit()
        self.generate_button = QPushButton('生成二维码')
        self.save_button = QPushButton('保存二维码')
        self.show_label = QLabel()
        
        # 绑定事件
        self.generate_button.clicked.connect(self.genQrcode)
        self.save_button.clicked.connect(self.saveQrcode)
        
        self.genQrcode()

    def genQrcode(self):
        content = self.content_edit.text()
        qr = qrcode.QRCode(
            version=1,
            error_correction=qrcode.constants.ERROR_CORRECT_M,
            box_size=10,
            border=4
        )
        qr.add_data(content)
        self.qr_img = qr.make_image()
        
        # 显示图片
        fp = io.BytesIO()
        self.qr_img.save(fp, 'BMP')
        qimg = QtGui.QImage()
        qimg.loadFromData(fp.getvalue(), 'BMP')
        self.show_label.setPixmap(QtGui.QPixmap.fromImage(qimg))

    def saveQrcode(self):
        filename = QFileDialog.getSaveFileName(
            self, '保存', './qrcode.png', '图片文件(*)')
        if filename[0] != '':
            self.qr_img.save(filename[0])

if __name__ == '__main__':
    app = QApplication(sys.argv)
    gui = qrcodeGUI()
    gui.show()
    sys.exit(app.exec_())
本地运行方法:
  1. 安装依赖:pip install qrcode PyQt5 pillow
  2. 保存代码为 qrcode.py
  3. 运行:python qrcode.py
无GUI版本(命令行):
import qrcode

# 生成二维码
img = qrcode.make('Hello World')
img.save('qr.png')  # 保存为图片