本文结合 PyQt5 的基础项目结构,详细介绍 PyQt5 的环境安装、PyCharm 中 Qt Designer 与 PyUIC 外部工具的配置,以及如何将 .ui 文件结合逻辑代码运行起来。适合刚接触 PyQt5 的开发者参考。
一、环境准备:安装 PyQt5
在开始之前,需要确保你的 Python 环境已经就绪(推荐 Python 3.7+)。打开命令行或 PyCharm 的 Terminal,执行以下安装命令:
pip install pyqt5
pip install pyqt5-tools
说明:
- pyqt5 是核心库,提供 GUI 组件。
- pyqt5-tools 包含 Qt Designer 等可视化设计工具(部分版本可能自带,但建议一并安装)。
安装完成后,可以通过以下命令验证是否成功:
python -c "from PyQt5.QtWidgets import QApplication; print('PyQt5 安装成功')"
二、配置 PyCharm 外部工具(Qt Designer 与 PyUIC)
为了在 PyCharm 中直接通过右键调用 Qt Designer 和 PyUIC,需要配置外部工具。配置完成后,就能出现你图片中的 Qt Designer 和 PyUIC 菜单。
1. 打开外部工具配置
在 PyCharm 中依次点击: File -> Settings -> Tools -> External Tools -> 点击 + 号添加。
2. 配置 Qt Designer
- Name: Qt Designer
- Program: 指向你的 designer.exe 路径(通常在 Python 安装目录下的 Lib\\site-packages\\qt5_applications\\Qt\\bin\\designer.exe 或 Lib\\site-packages\\PyQt5\\Qt\\bin\\designer.exe)。
- Working directory: $FileDir$
3. 配置 PyUIC
- Name: PyUIC
- Program: 指向你的 python.exe 路径(推荐使用当前项目虚拟环境的 Python)。
- Arguments: $FileName$ -o $FileNameWithoutExtension$.py
- Working directory: $FileDir$
注意: $FileName$ 表示当前选中的 .ui 文件,$FileNameWithoutExtension$ 表示去掉后缀的文件名。执行后会在同目录下生成对应的 .py 文件。
配置完成后,在项目文件上右键,选择 External Tools,就能看到 Qt Designer 和 PyUIC,和你图片中的一致。


三、项目文件结构
本文涉及三个核心文件,结构如下:
project/
├── Template.py # 主程序入口,负责逻辑控制
├── win1.ui # Qt Designer 设计的界面文件
└── win1.py # 由 win1.ui 通过 PyUIC 生成的 Python 代码
- win1.ui:通过 Qt Designer 拖拽生成的界面布局文件(XML 格式)。
- win1.py:由 PyUIC 自动生成,包含 Ui_MainWindow 类,不要手动修改。
- Template.py:主入口,将界面与业务逻辑结合。
四、代码解析
1. 界面设计(win1.ui)
在 Qt Designer 中,我们设计了一个简单的登录界面:
- 两个 QLabel:账号、密码。
- 两个 QLineEdit:用于输入账号和密码(默认填充 12345)。
- 两个 QPushButton:注册、登录。
- 整体采用水平布局和垂直布局组合。
对应的 XML 结构虽然繁琐,但通过 PyUIC 一键就能转成 Python 代码。
2. 生成的界面代码(win1.py)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
# 设置窗口大小、中央控件、布局、按钮、输入框、标签等
…
def retranslateUi(self, MainWindow):
# 设置文本内容,如按钮文字、标签文字
…
提示: 这个文件是自动生成的,每次修改 .ui 后重新运行 PyUIC 都会覆盖,所以不要在这里写业务逻辑。
3. 主程序入口(Template.py)
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import QFileDialog, QMainWindow, QMessageBox
from win1 import Ui_MainWindow
import sys
class PyQtMainEntry(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
# 参数初始化
'''定义要触发的函数'''
# def predict_price(self):
# def showbiao(self):
# def slot1(self):
# print('金色传说')
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = PyQtMainEntry()
window.show()
sys.exit(app.exec_())
代码说明:
- PyQtMainEntry 同时继承了 QMainWindow 和 Ui_MainWindow,这样既拥有主窗口的特性,又能直接使用 Designer 设计的界面。
- self.setupUi(self) 负责把界面搭建起来。
- 下方注释掉的函数是预留的槽函数,比如点击“登录”按钮时触发的逻辑,可以在这里实现。
- if __name__ == "__main__": 是标准入口,创建应用、显示窗口、进入事件循环。
五、运行与测试
self.pushButton_2.clicked.connect(self.login)
def login(self):
QMessageBox.information(self, "提示", "登录按钮被点击")
六、总结
本文从零开始,介绍了 PyQt5 的安装、PyCharm 外部工具的配置(Qt Designer 与 PyUIC),并结合实际项目文件讲解了 .ui、win1.py 和 Template.py 的关系。 核心流程可以概括为:
掌握这套流程后,你就可以快速开发出带有图形界面的 Python 应用程序了。


