编程应用、实战教程,不容错过
一、文中涉及
本文涉及以下知识点:
PyQt5/PiSide2网格布局的使用;
PyQt5/PiSide2按钮小部件的使用;
PyQt5/PiSide2标签小部件的使用;
PyQt5/PiSide2选值框小部件的使用;
PyQt5/PiSide2图像的使用;
Python第三方库qrcode的使用;
为了方便起见,以下代码使用PyQt5进行讲解,PiSide2同样适用。
二、创建图形界面
首先,我们来创建这个二维码生成器的基础图形界面。界面采用QGridLayout()网格布局,里面包含5个QLable()文本标签部件:
指示输入二维码的内容;
指示选择二维码图像尺寸;
指示设置二维码的内边框;
指示预览二维码;
显示预览的二维码;
首先我们引入所需的模块:
为了方便大家理解各个子类调用的位置,我们没有从PyQt5的子模块中直接import所有的子类。
然后创建一个继承自QtWidgets.QWidget()的类——QrcodeApp()作为我们的图形界面的主类,将上述的小部件添加进去:
这样,在运行代码后,我们会得到一个如下图所示的图形界面窗口:
一个基本的界面创建好了,接下来我们来实现生成二维码的功能;
三、生成二维码
在Python中有很多第三方的库可以生成二维码,在此我们选用的的qrcode这个库。没有按照的小伙伴可以使用下述命令进行安装:
它的项目地址为:https://github.com/lincolnloop/python-qrcode ,里面有详细的使用方法。
qrcode安装好之后,我们就可以很方便地创建二维码了。以下是一个使用qrcode创建二维码简单的示例:
在QrcodeApp()类中新建一个名为value_change()的方法,分别获取文本输入框、选值框和下拉框的值作为二维码的内容、二维码的留白大小和二维码的图片大小。通过qrcode生成二维码,再通过Qlabel()部件将二维码显示出来:
然后在初始化方法中调用value_change()方法,运行程序,我们就可以看到默认的文本框内容“州的先生”就已经被生成了二维码,如下图所示:
接下来,我们将文本输入框的文本改变信号textChanged、下拉框的当前索引改变信号currentIndexChanged和选值框的值改变信号valueChanged都连接到value_change()方法上,使得二维码可以实时根据设置的变化而生成新的二维码:
再次运行代码,可以发现当我们改变文本数据框和选值框的值时,显示的二维码也随之发生了改变,如下图所示:
四、保存二维码
完成了二维码的生成之后,我们需要将其保存到本地。在这里我们使用PyQt5的文件保存弹出框和qrcode的二维码保存方法save()来实现,继续新建一个名为save_qr()的方法:
然后将“保存二维码”按钮的clicked信号连接到这个方法上:
最后运行代码,可以发现生成的二维码已经可以保存了,如下图所示:
五、最后
这样我们就实现了使用Python制作二维码生成器,完整的代码已经上传到【州的先生资源中心】,欢迎留言讨论~
版权申明
万水千山总是情,点个“好看”行不行↓↓↓
领取专属 10元无门槛券
私享最新 技术干货