本文结合 PyQt5 的基础项目结构,详细介绍 PyQt5 的环境安装、PyCharm 中 Qt Designer 与 PyUIC 外部工具的配置,以及如何将
.ui文件结合逻辑代码运行起来。适合刚接触 PyQt5 的开发者参考。
一、环境准备:安装 PyQt5
在开始之前,需要确保你的 Python 环境已经就绪(推荐 Python 3.7+)。打开命令行或 PyCharm 的 Terminal,执行以下安装命令:
python
pip install pyqt5
pip install pyqt5-tools
说明:
pyqt5是核心库,提供 GUI 组件。pyqt5-tools包含Qt Designer等可视化设计工具(部分版本可能自带,但建议一并安装)。
安装完成后,可以通过以下命令验证是否成功:
python
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,和你图片中的一致。


三、项目文件结构
本文涉及三个核心文件,结构如下:
python
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)
python
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
# 设置窗口大小、中央控件、布局、按钮、输入框、标签等
...
def retranslateUi(self, MainWindow):
# 设置文本内容,如按钮文字、标签文字
...
提示: 这个文件是自动生成的,每次修改
.ui后重新运行 PyUIC 都会覆盖,所以不要在这里写业务逻辑。
3. 主程序入口(Template.py)
python
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__":是标准入口,创建应用、显示窗口、进入事件循环。
五、运行与测试
- 用 Qt Designer 打开
win1.ui,确认界面无误后保存。 - 右键
win1.ui,选择External Tools->PyUIC,生成win1.py。 - 运行
Template.py,即可看到登录窗口。 - 若想添加逻辑(例如点击"登录"弹出提示),可以在
Template.py中绑定信号与槽:
python
self.pushButton_2.clicked.connect(self.login)
def login(self):
QMessageBox.information(self, "提示", "登录按钮被点击")
六、总结
本文从零开始,介绍了 PyQt5 的安装、PyCharm 外部工具的配置(Qt Designer 与 PyUIC),并结合实际项目文件讲解了 .ui、win1.py 和 Template.py 的关系。 核心流程可以概括为:
- 安装
pyqt5和pyqt5-tools。 - 在 PyCharm 配置
Qt Designer和PyUIC外部工具。 - 用 Designer 设计界面,保存为
.ui。 - 用 PyUIC 将
.ui转为.py。 - 在
Template.py中继承生成的 UI 类,编写业务逻辑。
掌握这套流程后,你就可以快速开发出带有图形界面的 Python 应用程序了。