今天是个不错的日子,却给我带来了更大的烦恼,为什么呢? ,下面我们就来聊聊关于python自助生成二维码?接下来我们就一起去了解一下吧!

python自助生成二维码(中年大叔学编程-PyQt做一个简单的二维码生成器)

python自助生成二维码

今天是个不错的日子,却给我带来了更大的烦恼,为什么呢?

因为我看到了这个消息,突然想到这么大年纪了,身边的朋友都结婚生子了,唯独我还没有,焦虑、忧愁。算了,我们还是继续学习吧 前面简单的尝试了一下PyQt,这里我们就结合PyQt来给之前生成二维码的脚本做个可视化的界面。 首先,打开designer,新建一个窗口并保存为QRCodeui.ui

然后拖拽两个GroupBox并分别将其title属性改为二维码参数和二维码展示

我们在二维码参数的GroupBox分别拖拽一个label、一个text和两个button,在二维码展示的GroupBox中拖拽一个label用于展示二维码

目前,一个简单的ui界面就拖拽出来了,我们来执行pyuic5 -o qrcodeui.py qrcodeui.ui命令,将UI转为py文件 我们先新建一个py文件,把咱们的ui启动起来

import sys from PyQt5 import QtWidgets from qrcodeui import Ui_mainWindow if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_mainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())

先来实现一段简陋的代码

import sys from PyQt5 import QtWidgets,QtGui,QtCore import qrcode import win32clipboard as clip import win32con from io import BytesIO from PIL import Image from qrcodeui import Ui_mainWindow def btn_CreateQrCode(): qrcode_text=ui.lineEdit.text() if qrcode_text=='': QtWidgets.QMessageBox.information(MainWindow,(u'提示'),(u'请填写二维码内容'),QtWidgets.QMessageBox.Ok) else: qr_img = qrcode.QRCode( version=1, #控制二维码的大小,取值范围从1到40。取最小值1时,二维码大小为21*21 error_correction=qrcode.constants.ERROR_CORRECT_L, #控制二维码纠错级别 box_size=10, # 控制二维码中每个格子的像素数,默认为 10 border=4, # 控制二维码四周留白包含的格子数,默认为4 ) # 设置二维码数据 qr_data = "我的一个二维码" qr_img.add_data(data=qr_data) qr_img.make(fit=True) # 根据颜色生成二维码图片 img = qr_img.make_image(fill_color="yellow", back_color="white") #保存二维码 img.save('D:/qrcode.png') ui.label_2.setPixmap(QtGui.QPixmap("D:/qrcode.png")) #加载二维码 def btn_CopyQrCode(): image = Image.open('D:/qrcode.png') img_byte = BytesIO() # 用BMP格式存储 image.save(img_byte, 'BMP') # BMP图片有14字节的header,需要额外去除 data = img_byte.getvalue()[14:] # 关闭 img_byte.close() # 打开剪切板 clip.OpenClipboard() #清空剪切板 clip.EmptyClipboard() #往剪贴板写入数据 clip.SetClipboardData(clip.CF_DIB, data) #关闭剪切板 clip.CloseClipboard() if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_mainWindow() ui.setupUi(MainWindow) #给按钮绑定事件 ui.pushButton.clicked.connect(btn_CreateQrCode) ui.pushButton_2.clicked.connect(btn_CopyQrCode) MainWindow.show() sys.exit(app.exec_())

现在运行起来看看效果:

我们使用pyinstaller来把它打包成exe,执行pyinstaller -w -F qrcodewin.py就会在当前自动生成一个dist目录,相应的exe就存放在dist目录中。最后双击生成好的qrcodewin.exe即可运行

我只是记录我的学习过程,由于书读得少,可能很多地方表述或者是理解得不对,请轻喷并指正。