本人是做接口测试的,而很多接口现在对于安全方面有了很大的重视,所以往往在接口层上做了一些加密,比如MD5、AES、SHA之类的加密,而每次加密,都是自己利用python编写脚本而生成sign值,这往往对于自己在工具效率上无法提高,所以就产生了自己编写一个简单的加密+请求接口的小工具的想法。
因为本人现在主要是以python为主,所以在选择的时候,就从这方面入手。许多人在学习如何创建一个 GUI 应用的时候都感到十分的困难。其中最重要的原因是,他们不知道应该从何下手。大多数的教程都只有文字,但事实上仅仅依靠文字很难学会 GUI 编程,因为 GUI 应用大多数都是基于视觉上的。
本篇文章,主要是分享下自己在编写这个小工具过程中的心得。做出来的效果如下:
工具效果图
做出来的虽然有点简陋,但是可以做为借鉴、完善,接下来就是工具制作的方法:
1、Gui界面的制作
首先要先安装python环境,然后再eric6,涉及到这些环境的安装可以自行百度去寻找方法,在此不会涉及到环境安装的方法,环境安装完成后,打开QT Designer(在eric6根目录下点击eric6.pyc或者在python根目录下点击打开eric.bat):
QT Designer
打开QT Designer后,选择Main Window,点击创建:
创建Main Window
创建好你的MainWindow后:
MainWindow
在MainWindow界面的右边QObject,那就是定义这个对象的名字的地方。这个名字将是我们通过 Python 代码调用到这个对象的变量名,所以请尽量取一个有意义的名称。
设计完成你的界面后,点击保存,将会生成得到xxx.ui文件,这个文件可以通过cmd打开ui文件所在的路径,然后通过pyuic4 xx.ui > xx.py 可以得到xx.py文件:
生成的py文件
2、编写代码
Qt 代码是面向对象的,并且简单易学。所有我们添加的组件都是一个对象,并且都拥有自己的方法比如toPlainText()(用来读取输入框中的值)。这让它使用起来非常方便。
在你编写代码之前,你必须要使用一些函数来进行配置。可以通过官方的例程(以及网上的一些教程)中总结出了这一小段代码来进行配置。
这些代码非常有用,每当你想要创建一个新的 PyQt 项目的时候,就在这段代码的基础上添加你自己的代码吧。
这段代码如下:
其中需要注意的是:
你需要在这里填入你先前创建的文件的地址,即就是之前生成的ui文件。这个文件将会被内置的函数载入:
再看下这段代码:
这段主程序创建了一个新的 Qt Gui 应用。,每个 QT 应用都可以通过命令行进行配置,所以必须传入sys.argv 参数。不过现在我们用不到这个。最后,我们创建了一个MyApp类,这个类继承于 Qt 库并且调用了父类的初始化函数:
你不一定非得要了解这些代码的细节。你只需要在它的基础上继续开发就好了。
但是最好不需要这样导入ui文件为前提下进行开发,而是直接生成py文件基础上进行开发,因为你后续还需要生成exe文件,至于怎样实现你的功能,这部分代码可以看看自己的需求了,怎么写就怎么写了:
以上为部分代码,只提供为参考
这段代码有什么用?还记得我们把按钮命名为了calc_tax_button 吗?(这是这个按钮对象的名字,不是按钮上显示的提示字符串。)clicked 是一个内置的函数,当有按钮被点击的时候它会被自动调用(很神奇吧)。所有的 QT 组件都有特定的函数,你可以通过 Google 来查看详细。这段代码的最后部分是connect(self.CalculateTax)。这意味着这个按钮会被链接到一个叫做self.CalculateTax 的函数,这样以后每当用户按下这个按钮的时候,这段代码都会被调用。
下面介绍一些获取控件的值和给控件赋默认值的方法:
mainwindow.lineEdit.setText((u"zg 额外abc")) #给输入框赋值
mainwindow.textEdit.setPlainText('') #给texedit赋值
mainwindow.comboBox.setCurrentIndex(2) #给下拉框赋值
mainwindow.checkBox.setChecked(1) #给复选框checkbox赋值,可以填写True或者False 或0 ,1
print unicode(QString(mainwindow.lineEdit.text())) #获取输入框的值
unicode(QString(mainwindow.textEdit.toPlainText()))#获textedit的值
print unicode(QString(mainwindow.comboBox.currentText()))#获取下拉框的值
print mainwindow.comboBox.currentIndex() #获取下拉框的index
if mainwindow.checkBox.isChecked()==True 获取复选框checkbox的值
好了,关于pyqt这块的,先写到这里,我也是刚刚利用这个春节的时间来琢磨完成的,不过还是需要再深入学习。
领取专属 10元无门槛券
私享最新 技术干货