PyQt和PySide中使用Qt Designer

在这篇(Qt框架官方开发工具链有哪些?和PyQt以及PySide中的程序什么关系-CSDN博客)中提到了Qt官方框架和pyqt以及pyside中对应程序的关系,并对pyside中的designer、RCC与qt的designer和RCC做了说明。pyqt和pyside中的designer几乎和官方的designer没有区别,那么大家就不用纠结了,直接用你选定的pyside或pyqt中带的designer设计界面就行了。但安装方式等方面可能有一些不同,本文说一下,让大家更明白一些。

### 1. Qt Designer 的安装与集成

PySide
  • 安装后自带 Designer :
    • 通过 pip install PySide6 或 pip install PySide2 安装时,会自动包含 pyside6-designer.exe(或 pyside2-designer.exe)。
    • 路径通常在 Python 环境的 Scripts/ 目录下(Windows)或 /bin 目录(Linux/macOS)。
    • 文件名明确标识了绑定版本,例如:
      • PySide6 → pyside6-designer.exe
      • PySide2 → pyside2-designer.exe
  • 功能 :
    • 与官方 Qt Designer 完全一致,生成的 .ui 文件可被 PySide 直接加载。
PyQt
  • 通过独立包安装 Designer :
    • PyQt 的 Designer 需要单独安装 pyqt5-tools(PyQt5)或 pyqt6-tools(PyQt6):
bash 复制代码
pip install pyqt5-tools   # PyQt5
pip install pyqt6-tools   # PyQt6
    • 安装后生成 designer.exe(文件名无版本前缀,与 PySide 不同)。
    • 路径同样在 Scripts/ 或 /bin 目录。
  • 功能 :
    • 功能与 PySide 的 Designer 完全相同,因为均基于同一套 Qt 工具库。

### 2. 生成的 .ui 文件兼容性

  • 通用格式 :
    • 两者使用的 Designer 都是 Qt 官方工具,生成的 .ui 文件(XML 格式)完全兼容,可以互换使用。
    • 例如:用 PySide6-Designer 设计界面后,代码中用 PyQt5 加载无问题。
  • 加载方式 :
    • PyQt 和 PySide 均通过 QUiLoader 或 uic 模块加载 .ui 文件,API 几乎一致。

### 3. 关键差异对比

维度 PySide PyQt
Designer 安装 直接包含在 PySide2/PySide6 包中 需额外安装 pyqt5-tools/pyqt6-tools
可执行文件名 明确标识版本:pyside2-designer.exe、pyside6-designer.exe 统一为 designer.exe(无版本前缀)
启动命令 Windows 快捷方式或命令行直接运行 pyside6-designer 命令行运行 designer
.ui 加载 API 使用 QUiLoader(更接近 C++ Qt) 推荐 pyuic5/pyuic6 预编译为 Python 代码,或直接 loadUi 动态加载
资源文件 需手动处理 .qrc 文件(用 pyside6-rcc 编译) 同样需 pyrcc5 或 pyrcc6 编译

### 4. 实际应用建议

  1. 选择工具 :
    • 如果已安装 PySide,直接用自带的 pyside6-designer.exe,无需额外安装。
    • 如果已安装 PyQt,通过 pip install pyqt6-tools 快速安装 Designer。
  2. 团队协作 :
    • 确保团队统一使用 PyQt 或 PySide,避免混淆工具链。
    • 将 .ui 文件纳入版本管理(XML 格式易合并)。
  3. 开发流程 :
    • 动态加载 :适合快速迭代,但需附带 .ui 文件。
    • 预编译 :用 pyuic5 或 pyside6-uic 将 .ui 转为 Python 代码,减少运行时依赖:
bash 复制代码
pyside6-uic mainwindow.ui -o ui_mainwindow.py # PySide6
pyuic5 mainwindow.ui -o ui_mainwindow.py # PyQt5

总结

  • 功能一致性:PyQt 和 PySide 均使用 Qt Designer,核心操作和生成文件完全相同。
  • 差异点 :
    • PySide 自带 Designer,PyQt 需额外安装。
    • 可执行文件名不同(PySide 带版本前缀,PyQt 为 designer.exe)。
    • .ui 加载 API 风格略有差异,但效果一致。
  • 选择建议:根据项目已使用的绑定选择对应的 Designer,无需重复安装。
相关推荐
dialect_4 小时前
KMP算法
开发语言·c++·算法
总要学点什么5 小时前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
听风吹等浪起6 小时前
第26章:ViT+InceptionDW+FocalLoss改进|CT骨折影像二分类完整Pytorch实现(含PyQt5推理GUI)
pytorch·qt·分类
ShineWinsu6 小时前
对于Qt:QRadioButton常见属性以及QButtonGroup的解析
数据库·c++·qt·microsoft·gui·qradiobutton·qbuttongroup
开开心心_Every6 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c7 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
吴卫斌7 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
超级架构师8 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
叼烟扛炮8 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
LMT流氓兔9 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节