在Windows上用PyQt5开发GUI需三步:安装PyQt5及pyqt5-tools(须分步执行)、用designer.exe可视化设计界面、用pyuic将.ui转为.py并正确调用setupUi();缺一不可。

在Windows系统上用PyQt开发Python图形界面软件,核心是让代码能调用Qt的控件、能可视化拖拽设计界面、能将设计结果转成可执行的Python逻辑——这三步缺一不可,跳过任意一步都会导致后续写不出可用界面或运行报错。
安装PyQt5与配套工具链
打开PowerShell(推荐)或CMD,逐行执行以下命令:
pip install PyQt5
pip install pyqt5-tools
这两条命令必须分开执行,不能合并为一条。因为pyqt5-tools依赖PyQt5已存在,若强行合并在同一命令中安装,部分工具(尤其是designer.exe)可能无法正确解压到site-packages\pyqt5_tools目录下,导致后续找不到Qt Designer。
安装完成后,进入Python安装路径下的Lib\site-packages\pyqt5_tools文件夹,确认其中存在designer.exe和pyuic.py两个关键文件。若缺失,说明安装异常,需卸载重装:pip uninstall PyQt5 pyqt5-tools → 重新执行上述两条命令。
配置Qt Designer(可视化界面设计器)
方法一:直接双击启动(适合快速验证)
进入Python安装目录 → Lib\site-packages\pyqt5_tools → 双击designer.exe。首次运行会弹出模板选择窗口,选“Main Window” → 点击“Create”。此时已可拖拽按钮、文本框等控件,Ctrl+R实时预览效果。
方法二:集成进PyCharm(适合长期开发)
打开PyCharm → Settings → Tools → External Tools → 点击“+”号添加新工具:
Program:【填入designer.exe的完整绝对路径,例如C:\Users\Name\AppData\Local\Programs\Python\Python39\Lib\site-packages\pyqt5_tools\designer.exe】
Working directory:FileDir(点击右侧“Insert Macros…”选择)
配置完成后,在PyCharm右键任意文件夹 → External Tools → Qt Designer,即可一键唤起。注意:此路径必须是绝对路径,不能用相对路径或环境变量占位符,否则启动失败。
把.ui文件转成.py代码
第一步:用Qt Designer画好界面后,保存为main_window.ui(文件名可自定,但后缀必须是.ui)。
第二步:在PowerShell中定位到该.ui文件所在目录,执行转换命令:
python -m PyQt5.uic.pyuic main_window.ui -o main_window.py
这条命令会生成一个纯Python文件,里面包含所有控件的定义和初始化逻辑。生成的.py文件不能直接运行,它只是界面结构描述,还需配合业务逻辑代码使用。
第三步:在你的主程序中导入并实例化:
from main_window import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self) # 这行必须调用,否则界面不显示
注意:setupUi(self)是自动生成的函数名,大小写和括号缺一不可;若漏掉这句,程序运行无报错但窗口空白。
运行第一个可交互窗口
① 新建一个app.py文件,内容如下:
import sys
from PyQt5.QtWidgets import QApplication
from main_window import Ui_MainWindow
from PyQt5.QtCore import QThread
class MainWindow(Ui_MainWindow):
def __init__(self, window):
self.setupUi(window)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = QMainWindow()
ui = MainWindow(window)
window.show()
sys.exit(app.exec_())
② 确保main_window.py与app.py在同一目录下。
③ 在PowerShell中执行:python app.py
窗口立即弹出,且所有你在Designer里设置的按钮文字、标题、尺寸全部生效。此时你已拥有了一个可二次开发的GUI起点,后续只需在MainWindow类中补充信号连接、事件处理、数据绑定等逻辑即可。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











