测试开发06---接口测试工具实战---GUI编程---Qt5 & Qt设计师---接口测试工具开发
·
开发需求



GUI编程概述



GUI实现方案

我们最好有一个,gui是一个文件,py是一个文件
不要融合起来
我们可以选择Pyqt来实现

这次我们选择PySide2来实现

PySide2和Pyqt几乎一样。可以闭源,只要不改源码是可以商用的

UI设计和PY逻辑处理相互独立,相互调用
GUI开发环境搭建


C:\Users\xxxxxx\AppData\Roaming\Python\Python37\site-packages\PySide2\designer.exe
接口工具页面设计
QT Designer使用

直接打开

关联pycharm工具

上面的设置,可以通过pycharm直接打开designer.exe
那怎么跟python关联?通过pyUIC
pyUIC这个插件就是把GUI页面转成xxx.py文件的

Arguments 填写:$FileName$ -o $FileNameWithoutExtension$.py
Working directory 填写:$FileDir$
一般不直接将.ui文件转为.py文件,类似于录制一样的效果。会录制很多没有用的,还用调。还不如自己写呢
自己写的话需要导几个库
1.设计GUI文件—designer设计
2.了解GUI设计组件
3.编辑xx.py 逻辑处理代码
4.调试
常用的组件操作


通过pyUIC可以将xx.ui转成xx.py文件。可以直接用
但是就是录制的效果,很多很杂,需要调试
也可以自己写
代码的封装和调试

# 1.需要运行qt的gui程序,必须要创建一个app对象
from PySide2.QtWidgets import QApplication
# 2.需要打开一个UI文件
from PySide2.QtCore import QFile
# 3.python代码需要加载UI文件,需要加载模块
from PySide2.QtUiTools import QUiLoader
# 4.使用对象调用的方式去实现功能
app = QApplication([]) # 写sys.argv和[]没啥区别 创建一个新的应用程序
# 5.打开这个文件
qFile = QFile("页面设计.ui") # 文件对象,这是一个路径,像open
qFile.open(qFile.ReadOnly) # 只读方式
# 6.加载对象--生成一个UI对象
ui = QUiLoader.load(qFile)
# 7.关闭qfile
qFile.close()
上面的代码在哪都可以复用,初始代码,都可以用——————————————————————————

# 1.需要运行qt的gui程序,必须要创建一个app对象
from PySide2.QtWidgets import QApplication
# 2.需要打开一个UI文件
from PySide2.QtCore import QFile
# 3.python代码需要加载UI文件,需要加载模块
from PySide2.QtUiTools import QUiLoader
# 4.使用对象调用的方式去实现功能
app = QApplication([]) # 写sys.argv和[]没啥区别 创建一个新的应用程序
# 5.打开这个文件
qFile = QFile("页面设计.ui") # 文件对象,这是一个路径,像open
qFile.open(qFile.ReadOnly) # 只读方式
# 6.加载对象--生成一个UI对象
ui = QUiLoader().load(qFile)
# 7.关闭qfile
qFile.close()
# -------------上面的代码在哪都可以复用,初始代码,都可以用——————————————————————————
ui.show() # 显示出来
app.exec_() # 执行程序

也可以通过qtdesigner来预览效果

上面的操作就相当于前后端分离的效果。可以先把上面的原型画出来。但是现在最大的问题就是用不了,没有业务逻辑
qt里面带逻辑的地方叫信号槽
下面实现一个逻辑:
点击退出按钮,清空账号 填完信号槽编辑之后,保存一下。点击窗体,预览。(快捷键:ctrl + r)

# 1.需要运行qt的gui程序,必须要创建一个app对象
from PySide2.QtWidgets import QApplication
# 2.需要打开一个UI文件
from PySide2.QtCore import QFile
# 3.python代码需要加载UI文件,需要加载模块
from PySide2.QtUiTools import QUiLoader
# 4.使用对象调用的方式去实现功能
app = QApplication([]) # 写sys.argv和[]没啥区别 创建一个新的应用程序
# 5.打开这个文件
qFile = QFile("页面设计.ui") # 文件对象,这是一个路径,像open
qFile.open(qFile.ReadOnly) # 只读方式
# 6.加载对象--生成一个UI对象
ui = QUiLoader().load(qFile)
# 7.关闭qfile
qFile.close()
# -------------上面的代码在哪都可以复用,初始代码,都可以用——————————————————————————
# -------------下面是逻辑处理区——————————————————————————
# 逻辑处理里面可以写类,写函数,都可以
def login():
name = ui.name_lineEdit.text() # 数据从UI对象来,就是对象名,就是objectName
password = ui.psw_lineEdit.text() # 数据从UI对象来,就是对象名
# 下面可以做任何逻辑
if name == "aq" and password == "123":
ui.textBrowser.append("登录成功,欢迎用户:{}".format(name))
else:
ui.textBrowser.append("登录失败,请检查账号密码")
# 退出
def quit():
ui.textBrowser.clear() # 清空
ui.textBrowser.append("退出成功") # 清空
# 触发
# 点击登录需要触发登录操作
ui.loginButton.clicked.connect(login) # 函数名,不要()
# 点击退出,执行退出
ui.logoutButton.clicked.connect(quit)
# ---------------------------------------------------------------------------
ui.show() # 显示出来
app.exec_() # 执行程序
下面要如何打包成exe文件
pyinstaller -F 页面设计1.py
下面再在上面的界面里面加一个下拉框选项
# 接口工具下拉框处理
ui.comboBox.addItems(["GET", "post", "put", "delete"])




更多推荐
所有评论(0)