【GUI桌面开发3】PyCharm配置外部工具

PyCharm配置外部工具,将.ui文件编译为Python代码,完成GUI项目

任务目标

安装PyCharm,在PyCharm里面配置PySide6的uic外部工具,一键把Qt Designer导出的 .ui 文件转换成 .py 界面代码,组成可运行GUI项目。

前置准备

已经完成任务1,有 main.ui 文件、pyside6_gui环境,PySide6已经装好

PyCharm社区版(免费足够开发PySide6)

✅ PyCharm官方下载链接

复制代码
https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=windows&code=PCC

步骤1:安装PyCharm

  1. 双击安装包,一路next
  2. 勾选选项:Add launchers dir to PATH,关联 .py 文件
  3. 打开PyCharm,【新建项目】
  4. Python解释器选择:Existing environment
    解释器路径选中我们刚才的虚拟环境:
    D:\miniconda3\envs\pyside6_gui\python.exe

选好现有的Python环境。

步骤2:在PyCharm添加【外部工具 PySide6-UIC】(核心)

打开【菜单】设置:File → Settings → Tools → External Tools

点击右上角 + 新建工具,参数填写如下:

参数 填写内容
Name PySide6-UIC
Description ui文件转python界面代码
Program D:\miniconda3\envs\pyside6_gui\Scripts\pyside6-uic.exe
Arguments -o $FileNameWithoutExtension$.py $FileName$
Working directory $FileDir$

参数解释:

$FileName$ = 当前选中的ui文件

$FileNameWithoutExtension$.py = 和ui同名、后缀py的输出文件

$FileDir$ = ui文件所在文件夹

可选拓展:你还可以用同样方式,添加另外2个外部工具

  • PySide6-Designer:Program填 D:\miniconda3\envs\pyside6_gui\Scripts\pyside6-designer.exe
  • PySide6-RCC:Arguments -o $FileNameWithoutExtension$_rc.py $FileName$

步骤3:使用外部工具编译ui文件

  1. 在PyCharm项目文件夹里放入之前Qt Designer保存好的 main.ui
  2. 在项目窗口选中 main.ui,文件上右键快捷菜单命令。
  3. 或顶部菜单:Tools → External Tools → PySide6-UIC
  4. 自动在同目录生成 main.py(界面代码文件)


    执行后,在项目中编译出来了一个新文件main.py

步骤4:在PyCharm中需要切换到你的Python环境才能正确执行Python程序所需要的依赖包,加载【pyside6_gui】环境。需要分成2个步骤。先打开一个终端,再输入conda激活环境的命令。

步骤5:还需要另外新建Python程序文件: main_run.py,加载界面运行GUI

main.py文件是 pyside6-uic 从.ui 文件编译出来的界面定义文件(Ui_MainWindow 类),它只有界面描述,没有启动 Qt 应用的主程序代码。直接运行它,代码跑完立刻结束,窗口一闪而过。

⚠️ 重点:这个自动生成的 .ui 文件不要直接运行,也不要在这里手写逻辑,重新 uic 编译会覆盖删掉你的代码!

新建 main_run.py,最简可运行代码:

python 复制代码
import sys
from PySide6.QtWidgets import QApplication, QMainWindow
from main import Ui_MainWindow   # 刚刚uic生成的py里面的UI类

class MyWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)  # 加载布局

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MyWindow()
    win.show()
    sys.exit(app.exec())
方案 1(推荐,切回你之前的pyside6_gui环境)

PyCharm 右下角,点 Python 解释器,切换成 pyside6_gui

终端里确认:看到 PySide6 就对了,再运行 main_run.py

终端:(pyside6_gui) ✅ conda 识别成功,终端里面可以正常 pip 装包

PyCharm 解释器下拉:看不到 pyside6_gui❌ PyCharm 扫描失败

重点:终端激活 ≠ 设置的PyCharm 项目解释器,两者是分开的!哪怕终端是 pyside6_gui,PyCharm 运行代码依旧会用选中的其它python解释器,这就是你直接右键运行时的情况。

重要补充:PyQt6 和 PySide6 的区别

PyQt6本身自带uic;但是Designer等工具需要额外安装包
⚠️ 推荐课程统一用PySide6,开源协议更宽松,工具自带不用额外装包,适合教学

踩坑清单

  1. 外部工具路径写错:复制路径时,确认是envs下面pyside6_gui里面的Scripts,不是base环境!
  2. Arguments写错,生成空白py文件:严格复制 -o $FileNameWithoutExtension$.py $FileName$
  3. 运行提示找不到Ui_MainWindow:必须先执行uic编译,生成py文件,再import
  4. 修改ui界面之后:要重新执行一次PySide6-UIC,刷新py代码
相关推荐
一千柯橘1 小时前
LangChain 的实时输出处理: stream_events 和 Streaming
python·langchain·agent
贾公子1 小时前
图片 AIGC 检测接入实战——URL 与 Base64 的取舍、体积校验与「你送过去的可能不是那张图」
python·aigc
SEO_juper2 小时前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash
曲径海盗2 小时前
【Python 学习第 37 天】for 循环
python·学习笔记·编程入门
心静财富之门2 小时前
Python 数据共享四种方案完整实例(同进程 / JSON / Redis / HTTP)
数据库·python·oracle
王仔小奶3 小时前
慢SQL治理与性能调优:DBA如何用Shell/Python提升运维效率?
python·sql·dba
用户0332126663673 小时前
使用 Python 快速在 PowerPoint 中生成表格【教程】
python
夜晚回家3 小时前
Python 身份运算符详解 | is 与 == 到底差在哪
python
fengye2071613 小时前
cpython框架结构
python