2. 开发环境搭建:Python环境配置、PyQt5安装、Qt Designer工具介绍、虚拟环境管理

好,咱们正式开始动手了。这一章我带你搭好开发环境。别小看这一步,我见过太多人卡在环境配置上,一卡就是半天。说白了,环境搭好了,后面写代码才顺心。

2.1 Python环境配置

先说说Python版本。我个人习惯用Python 3.8到3.10之间的版本。为什么?PyQt5对3.11以上的支持偶尔会出点小毛病,我在项目中遇到过几次莫名其妙的导入错误,最后发现是Python版本太新了。你想想看,心电监护仪这种项目,稳定比什么都重要。

下载安装:去Python官网下载安装包。Windows用户记得勾选「Add Python to PATH」。这个选项不勾,后面命令行里敲python会提示找不到命令。嗯,这里要注意。

装完验证一下。打开终端或命令提示符,敲:

python --version

如果显示Python 3.x.x,说明装好了。如果报错,多半是PATH没配好。我曾经帮一个同事排查了半天,结果发现他装了三个不同版本的Python,环境变量乱成一锅粥。所以我的建议是:只装一个版本,别贪多。

2.2 虚拟环境管理

为什么要用虚拟环境?说白了,就是隔离项目依赖。你同时做三个项目,一个用PyQt5,一个用PyQt6,另一个用Tkinter。没有虚拟环境,这些包全混在一起,迟早出问题。

我推荐用 venv,Python自带的,不用额外安装。操作很简单:

# 创建虚拟环境
python -m venv ecg_env

# 激活虚拟环境
# Windows:
ecg_env\Scripts\activate
# macOS/Linux:
source ecg_env/bin/activate

激活后,终端前面会出现 (ecg_env) 字样。这时候你安装的所有包,都只在这个环境里生效。我曾经犯过一个错:在全局环境里装了PyQt5,后来项目要部署到另一台机器上,依赖全乱套了。从那以后,每个项目我都老老实实建虚拟环境。

小技巧:把虚拟环境建在项目根目录下,取名 venv.venv。这样一眼就能看出来,也方便.gitignore忽略掉。

2.3 PyQt5安装

激活虚拟环境后,安装PyQt5就一行命令:

pip install PyQt5

等等,别急着敲回车。我建议先换国内镜像源,不然下载速度会让你怀疑人生。用清华源:

pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完成后,验证一下:

python -c "from PyQt5.QtWidgets import QApplication; print('PyQt5 installed successfully')"

如果没报错,恭喜你,环境搭好了。如果报错说找不到模块,检查一下虚拟环境有没有激活。嗯,这个坑我踩过不止一次。

PyQt5安装包大概30MB左右,包含QtCore、QtGui、QtWidgets等核心模块。做心电监护仪界面,主要用QtWidgets和QtGui。QtChart模块需要单独安装,后面画心电波形时会用到。

注意:不要用 pip install PyQt5-tools 来装Qt Designer。新版本的PyQt5已经不自带Designer了,需要单独下载。下面我会说怎么搞。

2.4 Qt Designer工具介绍

Qt Designer是个可视化界面设计工具。说白了,就是拖拖拽拽就能把界面画出来,不用手写一堆布局代码。我个人觉得,做心电监护仪这种带很多控件的界面,用Designer效率高得多。

下载安装:去Qt官网下载Qt Creator(里面包含Designer),或者单独下载Qt Designer。我建议直接装Qt Creator,因为后面调试信号槽也方便。下载时选开源版本就行,别花冤枉钱。

装完后打开Designer,你会看到这样的界面:

  • 左侧:控件面板,按钮、标签、输入框都在这里
  • 中间:画布,你的界面就在这里设计
  • 右侧:属性编辑器,调整控件大小、颜色、字体
  • 下方:信号槽编辑器,连接控件事件

我一般的工作流程是:先在Designer里把界面布局画好,保存为.ui文件。然后在Python代码里用 uic.loadUi() 加载。这样界面和逻辑分离,改界面不用动代码,改代码不用动界面。

举个例子,保存一个简单的窗口为 main.ui,然后在Python里加载:

from PyQt5 import uic
from PyQt5.QtWidgets import QApplication

app = QApplication([])
window = uic.loadUi('main.ui')
window.show()
app.exec_()

你看,代码就这么几行。我曾经手写过几百行的布局代码,后来发现用Designer十分钟就搞定了。从那以后,复杂界面我再也不手写了。

核心要点:.ui文件本质上是XML格式,可以用文本编辑器打开查看。但别手改,容易改坏。所有修改都在Designer里完成。

2.5 环境验证与常见问题

环境搭完了,咱们跑个简单的测试程序,确保一切正常:

import sys
from PyQt5.QtWidgets import QApplication, QLabel

app = QApplication(sys.argv)
label = QLabel('心电监护仪界面开发')
label.show()
sys.exit(app.exec_())

如果弹出一个窗口显示文字,说明环境完全OK。如果报错,对照下面排查:

错误信息 原因 解决办法
ModuleNotFoundError: No module named 'PyQt5' PyQt5没安装或没激活虚拟环境 检查虚拟环境是否激活,重新pip install
ImportError: DLL load failed Visual C++运行库缺失 安装VC++ 2015-2022 Redistributable
qt.qpa.plugin: Could not load the Qt platform plugin 环境变量问题 设置QT_QPA_PLATFORM_PLUGIN_PATH

最后说一句,环境搭建这一步别急。我见过有人装了一下午没搞定,最后发现是Python版本和PyQt5不兼容。我的建议是:严格按照上面的步骤来,遇到问题先看错误信息,再上网搜。大部分问题StackOverflow上都有答案。

好,环境搭好了。下一章咱们开始写第一个心电监护仪的界面。到时候你会看到,前面这些准备工作有多值得。