个性化二维码exe桌面应用的获取方法放在文末,请查收。通过执行打包后的exe应用程序,可以直接运行生成个性化二维码。在开始之前,我们先来看看如何通过二维码生成器生成个性化的二维码。[阅读全文]使用的python包与之前GUI应用制作中使用的模块相同。#-*-coding:utf-8-*-importosimportsysfromPyQt5.QtWidgetsimport*fromPyQt5.QtGuiimport*fromPyQt5.QtCoreimport*importimages这里的images模块用来解决打包时引用外部图片的问题应用程序。有效性问题。后面的文章会讲解如何将外部资源打包成exe应用程序。对于GUI桌面应用,首先使用pyqt5进行界面布局,添加界面组件。虽然代码量看起来比较大,但是逻辑性并不强。#-*-编码:utf-8-*-definit_ui(self):grid=QGridLayout()self.picture_name=''self.words_label=QLabel()self.words_label.setText('Linksettings:')self.words_text=QLineEdit()self.words_text.setPlaceholderText('www.baidu.com')self.words_text.setAttribute(Qt.WA_InputMethodEnabled,False)self.version_label=QLabel()self.version_label.setText('边距设置(仅Fine-允许调整):')self.version_text=QSpinBox()self.version_text.setRange(1,3)self.version_text.setValue(1)self.picture_text=QLineEdit()self.picture_text.setPlaceholderText('个性化图片路径')self.picture_text.setReadOnly(True)self.picture_button=QPushButton()self.picture_button.setText('个性化图片')self.picture_button.clicked.connect(self.picture_button_click)self.colorized_label=QLabel()self.colorized_label.setText('是否显示彩色:')self.colorized_text=QComboBox()colored_items=['是','否']self.colorized_text.addItems(colorized_items)self.colorized_text.setCurrentIndex(1)self.brightness_label=QLabel()self.brightness_label.setText('调整图像亮度:')self.brightness_text=QDoubleSpinBox()self.brightness_text.setRange(1,10)self.brightness_text.setSingleStep(1.0)self.save_dir_text=QLineEdit()self.save_dir_text.setPlaceholderText('存储目录')self.save_dir_text.setReadOnly(True)self.save_dir_button=QPushButton()self.save_dir_button.setText('自定义路径')self.save_dir_button.clicked.connect(self.save_dir_button_click)self.generate_button=QPushButton()self.generate_button.setText('快速生成二维代码')self.generate_button.clicked.connect(self.generate_button_click)self.version_current=QLabel()self.version_current.setText('默认二维码为作者,版本声明:本应用由开发[Python集中营]发布!')self.version_current.setAlignment(Qt.AlignCenter)self.version_current.setStyleSheet('颜色:红色')self.image=QLabel()self.image.setScaledContents(True)self.image.setMaximumSize(200,200)self.image.setPixmap(QPixmap(':/default.png'))grid.addWidget(self.words_label,0,0,1,1)grid.addWidget(self.words_text,0,1,1,2)grid.addWidget(self.version_label,1,0,1,2)grid.addWidget(self.version_text,1,2,1,1)grid.addWidget(self.picture_text,2,0,1,2)grid.addWidget(self.picture_button,2,2,1,1)grid.addWidget(self.colorized_label,3,0,1,2)grid.addWidget(self.colorized_text,3,2,1,1)grid.addWidget(self.brightness_label,4,0,1,2)grid.addWidget(self.brightness_text,4,2,1,1)grid.addWidget(self.save_dir_text,5,0,1,2)grid.addWidget(self.save_dir_button,5,2,1,1)grid.addWidget(self.generate_button,6,0,1,3)hbox=QHBoxLayout()hbox.addWidget(self.image)hbox.addSpacing(30)hbox.addLayout(grid)vbox=QVBoxLayout()vbox.addLayout(hbox)vbox.addSpacing(10)vbox.addWidget(self.version_current)self.setLayout(vbox)中使用了三个slot函数,一个是选择背景图片,另一个是选择并存储生成的文件。存储路径可以自由选择存储在哪里,第三个是调用生成二维码的函数,第一个是看如何通过关联槽函数。defpicture_button_click(self):importosself.cwd=os.getcwd()txt_file_path=QFileDialog.getOpenFileName(self,"选择文件",self.cwd,"JPG文件(*.jpg);;PNG文件(*.png)")self.picture_text.setText(txt_file_path[0])如果self.picture_text.text().strip()!="":self.picture_name=txt_file_path[0].split('/')[-1].split('.')[0]print(self.picture_name)else:self.picture_name=''第二种是选择存储文件路径的槽函数。defsave_dir_button_click(self):importosself.cwd=os.getcwd()directory=QFileDialog.getExistingDirectory(self,'selectfolder',self.cwd)print(directory)self.save_dir_text.setText(directory)是通过dialog的以对话框的形式获取自定义选择的存储文件路径。第三个插槽功能是生成个性化二维码。其实二维码的生成部分只是一个码。即MYQR模块提供的run函数,可以生成个性化二维码。首先,您需要导入MYQR库。fromMyQRimportmyqr为了看清楚下面的二维码生成函数(run函数),我们先来看看这个库提供的run函数的参数。'''myqr.run()参数说明words需要跳转链接或文字版自然数,数字越大,边长级别越大为1.0brightnessbrightnessfloat,adjustImagebrightnesssave_name输出文件名,默认文件名"qrcode.png"save_dir存储位置,默认存储当前目录'''具体看一下这个生成个性化二维码的槽函数。除了二维码的生成和需要在应用页面显示生成的二维码外,其他主要是一些参数的验证方法。defgenerate_button_click(self):fromMyQRimportmyqrcolorized_index=self.colorized_text.currentIndex()print(colorized_index)colorized=Noneifcolorized_index==0:colorized=Trueelse:colorized=Falseprint(colorized)words_text=self.words_text。text()words=Noneifwords_text.strip()!="":words=words_text.strip()else:words='默认消息:Python非常漂亮'print(words)version_text=self.version_text.value()print(version_text)picture_text=self.picture_text.text()picture=Noneifpicture_text.strip()!="":picture=picture_text打印(图片)brightness_text=self.brightness_text.value()print(brightness_text)save_dir_text=self.save_dir_text.text()save_dir=Noneifsave_dir_text.strip()!="":save_dir=save_dir_text.strip()else:save_dir=os.getcwd()print(save_dir)myqr.run(words=str(words),version=int(version_text),level='H',picture=picture,colorized=colorized,contrast=1.0,brightness=float(brightness_text),save_dir=save_dir)如果self.picture_name.strip()!='':map_dir=save_dir+'/'+self.picture_name+'_qrcode.png'else:map_dir=save_dir+'/'+'qrcode.png'print(map_dir)self.image.setPixmap(QPixmap(map_dir))代码看着很多,仔细想想也不难理解如果逻辑处理有问题或者有更好的解决方案欢迎在评论区留言一起讨论~个性二维码生成器exe桌面应用获取方法:公众号回复“二维码发电机”来接收它。由于代码量较大,下篇文章将介绍如何将外部资源图片打包到PyQt5应用中。[往期选题]如何在控制台实现一个数据管理系统(包括对MYSQL数据库的增删改查)自制文档格式转换器,支持.txt/.xlsx/.csv格式转换...如何实现PyPDF2根据PDF页码提取并保存为PDF文件?浪漫海龟,送给程序员自己的圣诞树!PyQt5GUI:百度图片下载器(文末附源码)
