在Visual Studio Code中使用PyQt5开发python GUI应用程序

0. 概述

0.1. 什么是Qt?

Qt是一套跨平台的C++框架,用于开发图形用户界面(GUI)和非GUI应用程序。

0.2. 什么是PyQt?

PyQt是一个用于创建基于Qt应用程序的Python库。PyQt允许开发者使用Python语言访问Qt的功能,开发桌面应用程序。

0.3. 使用PyQt创建GUI应用程序的基本流程是怎么样的?

  1. 安装PyQt。
  2. 使用Qt Designer软件,设计应用程序的GUI界面,获得 .ui 文件。
  3. 使用Pyuic工具,将 .ui文件转换为 .py文件。
  4. 使用python编程,调用GUI界面的 .py文件,编写GUI界面各组件的绑定事件函数,如点击某按钮时触发某函数,实现某功能。

0.4. 在Visual Studio Code中使用PyQt5的思路是怎么样的?

在Python环境(原生或虚拟环境)中安装PyQt5,在Visual Studio Code编辑器(下文简称VSC)中安装PyQt拓展,然后就可以在VSC中完成「新建 .ui文件」、「启动Qt Designer」、「完成.ui文件和 .py文件的转换」等工作,十分方便。

现在开始介绍使用方法。

1. 安装PyQt5

使用PyQt5需要用到两个包:pyqt5和pyqt5-tools。如果想在原生环境中安装,那么在命令行中使用pip即可安装:

pip install PyQt5
pip install PyQt5-tools

本人习惯在虚拟环境中安装,因此先不执行上述两个命令,首先创建一个虚拟环境「venv_QT」:

python -m D:\data\...\venv_QT

再使用虚拟环境的pip在虚拟环境中安装pyqt5和pyqt5-tools两个包,并采用国内镜像网站,提高下载速度和成功率:

D:\data\...\venv_QT\Scripts\python -m pip install PyQt5
D:\data\...\venv_QT\Scripts\python -m pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成。

2. VSC安装PYQT Integration拓展

在VSC中点击「Extensions 拓展」,搜索「PYQT Integration」并安装。

安装完成后,点击「PYQT Integration」的齿轮,选择「Extension Settings」,进入该拓展的设置页面。

在设置页面,我们指定一些PyQt工具的路径,以便于在VSC中启动这些工具,便捷地执行PyQt操作。

  1. 首先指定Pyuic的路径(前文说到,Pyuic是一个将我们设计的GUI界面的 .ui 文件转换为 .py 文件的工具),在「Pyqt-integration > Pyuic: Cmd」,输入安装PyQt5的虚拟环境中Pyuic的绝对路径:
D:\data\...\venv_QT\Scripts\pyuic5

2. 指定QT designer的路径(前文说到,QT designer就是QT用来设计GUI的软件,通过拖拽组件可以快速构建GUI),在「Pyqt-integration > Qtdesigner: Path」,输入虚拟环境中QT designer的绝对路径:

D:\data\...\venv_QT\Lib\site-packages\qt5_applications\Qt\bin\designer

3. 此外,我们还可以在「Pyqt-integration > Pyuic > Compile: Filepath」指定将 .ui 文件转换成 .py 文件时的保存路径和命名格式。

完成设置后,就可以开始在VSC中使用PyQt了。

3. 在VSC中使用PyQt5

在VSC中打开一个文件夹(Folder),来作为开发GUI项目的目录。

在文件夹栏空白处点击右键,点击「PYQT: New Form」,即可启动Qt Designer软件,开始设计项目的GUI界面。

拖拽各种组件,设计项目的GUI。Qt Designer的使用方法不是本文的重点,不展开。

设计完成后,点击「文件 > 另存为」,把所设计的 .ui文件保存到项目目录下。保存完成后即可关闭Qt Designer。

现在回到VSC,可以看到项目目录下刚才所保存的 xxx.ui文件。文件里是类似html5的代码,我们不需要管。

在文件夹栏右击 xxx.ui文件,点击「PYQT: Compile Form」,即可(调用Pyuic工具)将 xxx.ui文件转换为 xxx_Ui.py文件。转换完成后,可以在目录看到新生成的 xxx_Ui.py文件。(复习一下:这个文件的命名格式可以按照上文的方法指定。)

这个 xxx_Ui.py文件,忽略其.py后缀,名字是「matchingNetworkDesigner_Ui」,它的代码主体是一个类,类的名字是「Ui_MainWindow」,类里定义了GUI的各个组件及其格式、位置等等。

现在,我们新建一个 TOP.py文件,作为项目的顶层文件。在TOP.py文件里,我们调用GUI的xxx_Ui.py和定义函数的 xxx_function.py文件,并将GUI各组件的操作与函数绑定,实现GUI程序的完整功能。

TOP.py要调用xxx_Ui.py里的class,顺利显示GUI,需要一些固定的语句,请参看以下代码和注释:

# TOP.py的基本框架。
# 可以加以拓展,继续添加更多的函数、绑定更多的GUI组件的事件。

import sys                                             # import必要的包
from PyQt5.QtWidgets import QApplication, QMainWindow
import matchingNetworkDesigner_Ui                      # import GUI的.py文件                    

def L_cal():
    pass

def L_reset():
    pass

if __name__ == "__main__":

    app = QApplication(sys.argv)                        
    MainWindow = QMainWindow()                    
    ui = matchingNetworkDesigner_Ui.Ui_MainWindow()     # ui=GUI的py文件名.类名
    ui.setupUi(MainWindow)

    ui.L_PB_cal.clicked.connect(L_cal)                  # 把函数绑定GUI的按钮的点击事件。
    ui.L_PB_reset.clicked.connect(L_reset)              # 按钮名字「L_PB_cal」和「L_PB_reset」在Qt Designer中定义。
    MainWindow.show()
    sys.exit(app.exec_())

我们运行 TOP.py 文件,就可以启动GUI应用程序了:

我们在开发项目过程中,可以随时对GUI界面进行修改和调整。在文件夹栏的 .ui文件右击,点击「PYQT: Edit in Designer」,即可启动Qt Designer对GUI界面进行编辑。

编辑完成后保存并退出Qt Designer,对.ui文件右击,点击「PYQT: Compile Form」,重新更新一次 xxx_Ui.py文件即可。

运行过程中可能会出现报错:

qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""
This application failed to start because no Qt platform plugin could be initialized. 
Reinstalling the application may fix this problem.

解决办法是将Qt5的相关路径添加至系统变量。

变量名:QT_QPA_PLATFORM_PLUGIN_PATH

变量值:D:\data\...\venv_QT\Lib\site-packages\PyQt5\Qt5\plugins\platforms

基于PyQt5+Python开发的对话机器人项目源码+项目说明.zip 【1】项目代码完整且功能都经验证ok,确保稳定可靠运行后才上传。欢迎下载使用!在使用过程,如有问题或建议,请及时私信沟通,帮助解答。 【2】项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 【3】项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、项目初期立项演示等用途。 【4】如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能。 【特别强调】 项目下载解压后,项目名字和项目路径不要用文,否则可能会出现解析不了的错误,建议解压重命名为因为名字后再运行!有问题私信沟通,祝顺利! 毕业设计基于PyQt5+Python开发的对话机器人项目源码+项目说明.zip 1. 项目背景&应用场景 聊天机器人可以通过固定的关键词获取回答模拟人类进行对话的程序,它可以解放企业相对固化、重复的密集型任务或流程所需的人力。可应用于TB商品售前后自助咨询、服务类业务办理流程引导等场景。 jpg2. 开发工具 #2.1 开发语言python3.7 Python编写效率高,代码量少,适合快速开发。并且支持大量的库,有很好的拓展性。 #2.2 开发环境:Visual Studio Code1.51.1 该编辑器也集成了所有一款现代编辑器所应该具备的特性,包括语法高亮(syntax high lighting),可定制的热键绑定(customizable keyboard bindings),括号匹配(bracket matching)以及代码片段收集(snippets)。 #2.3 界面UI设计工具:Pyqt5 5.15.1 pyqt5是一套Python绑定Digia QT5应用的框架。它可用于Python 2和3。本项目使用Python 3。Qt库是最强大的GUI库之一。pyqt5做为Python的一个模块,它有620多个类和6000个函数和方法。 jpg3. 功能设计与实现 3.1 闲聊功能 用户随机输入语句,机器人识别后,返回对应语句。 3.2 天气查询 输入关键词“天气查询”即可进入天气查询功能,用户再输入所要查找的城市,机器人将会返回天气数据 3.3 疫情查询 输入关键词“疫情查询”即可进入疫情查询功能,用户再输入所要查找的省份,机器人将会返回疫情数据 3.4 汇率兑换 输入关键词“汇率兑换”即可进入汇率兑换功能,用户再输入带单位所需兑换的金额,机器人将会返回兑换后的货币数据 3.5 讲个笑话 输入关键词“笑话”即可进入讲个笑话功能,机器人直接返回一条笑话,如果还想听其他笑话,用户输入再来一个,机器人将返回另一条笑话 3.6 NBA今日东西部排名 输入关键词“NBA”即可进入NBA今日东西部排名功能,机器人直接返回排名数据 3.7 脑筋急转弯 输入关键词“脑筋急转弯”即可进入脑筋急转弯功能,机器人会提示用户输入“开始”,用户发送后机器人将返回一段脑筋急转弯,用户可选择输入“答案”来查看正确答案,若用户发送错误答案,机器人将提示,答案错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄聪的笔记本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值