首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

利用pyqt来编写属于自己的python Gui界面

本人是做接口测试的,而很多接口现在对于安全方面有了很大的重视,所以往往在接口层上做了一些加密,比如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这块的,先写到这里,我也是刚刚利用这个春节的时间来琢磨完成的,不过还是需要再深入学习。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180223A0IL8Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券