python自助生成二维码(中年大叔学编程-PyQt做一个简单的二维码生成器)
今天是个不错的日子,却给我带来了更大的烦恼,为什么呢? ,下面我们就来聊聊关于python自助生成二维码?接下来我们就一起去了解一下吧!
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即可运行
我只是记录我的学习过程,由于书读得少,可能很多地方表述或者是理解得不对,请轻喷并指正。
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com