Featured image of post 使用pyqt5写个windows二维码工具

使用pyqt5写个windows二维码工具

前言

最近在维护自己开设的公众号,偶尔需要生成二维码。二维码生成很多但大多都是网页版本。python生成二维码之前也实现过,所以有空闲自己使用pyqt5写个windows工具。

正文

将数据生成二维

这里有个坑qrcode模块需要image支持。测试过程中因为没有安装image模块,一调试程序就退出。纠结了大半个小时

import qrcode
def createQR(data, filename=''):
    fn = ''
    if filename == '':
        fn = os.path.join(os.getcwd(), 'qrcode_tmp.png')
    else:
        fn = os.path.join(os.getcwd(), filename)
    img = qrcode.make(data)
    # img.get_image().show()显示
    img.save(fn)
    return fn

pyqt5前端界面

一个输入框获取用户需要转二维码的数据,一个按钮执行转换,很简单。(网上现学现卖)


class MyView(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 设置窗口的位置和大小
        self.setGeometry(300, 300, 300, 220)

        # 设置窗口的标题
        self.setWindowTitle('Icon')
        self.setWindowIcon(QIcon('web.png'))

        # 创建一个okButton并设置响应函数
        self.okButton = QPushButton("action")
        self.okButton.clicked.connect(self.doAction)
        self.qline = QLineEdit(self)

        vbox = QVBoxLayout()
        vbox.addWidget(self.qline)
        vbox.addWidget(self.okButton)

        self.setLayout(vbox)
        self.show()

    def doAction(self):
        data = self.qline.text()
        fn = createQR(data)
        QMessageBox.information(self, "二维码生成",
                fn,QMessageBox.Yes)

if __name__ == '__main__':
    # 创建应用程序和对象
    app = QApplication(sys.argv)
    ex = MyView()
    sys.exit(app.exec_())

pyinstaller打包成exe程序

	pyinstaller -F -w windows_qrcode.py

windows二维码工具就完成了。

前后1个半小时(pyqt5界面花了点时间,qrcode坑捣鼓了半个小时)。代码很粗糙有兴趣的朋友可以继续完善,比如直接在前端界面显示二维码,或加入logo等等。

完整源码

https://download.csdn.net/download/vr7jj/10458583