开发需求
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

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"])

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐