pyqt designer_中年大叔学编程-PyQt做一个简单的二维码生成器

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

因为我看到了这个消息,突然想到这么大年纪了,身边的朋友都结婚生子了,唯独我还没有,焦虑、忧愁。算了,我们还是继续学习吧 前面简单的尝试了一下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 sysfrom PyQt5 import QtWidgetsfrom qrcodeui import Ui_mainWindowif __name__ == '__main__':    app =  QtWidgets.QApplication(sys.argv)    MainWindow = QtWidgets.QMainWindow()    ui = Ui_mainWindow()    ui.setupUi(MainWindow)    MainWindow.show()    sys.exit(app.exec_())

先来实现一段简陋的代码

import sysfrom PyQt5 import QtWidgets,QtGui,QtCoreimport qrcodeimport win32clipboard as clipimport win32confrom io import BytesIOfrom PIL import Imagefrom qrcodeui import Ui_mainWindowdef 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即可运行

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

你可能感兴趣的:(pyqt,designer,pyqt,designer,connect无响应,pyqt,只能打开子窗口一次,vue生成二维码,qrcode,为什么用pyqt的不多)