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
- PySide6 →
- 通过
- 功能:
- 与官方 Qt Designer 完全一致,生成的
.ui
文件可被 PySide 直接加载。
- 与官方 Qt Designer 完全一致,生成的
PyQt
- 通过独立包安装 Designer:
- PyQt 的 Designer 需要单独安装
pyqt5-tools
(PyQt5)或pyqt6-tools
(PyQt6):
- PyQt 的 Designer 需要单独安装
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 加载无问题。
- 两者使用的 Designer 都是 Qt 官方工具,生成的
- 加载方式:
- PyQt 和 PySide 均通过
QUiLoader
或uic
模块加载.ui
文件,API 几乎一致。
- PyQt 和 PySide 均通过
### 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. 实际应用建议
- 选择工具:
- 如果已安装 PySide,直接用自带的
pyside6-designer.exe
,无需额外安装。 - 如果已安装 PyQt,通过
pip install pyqt6-tools
快速安装 Designer。
- 如果已安装 PySide,直接用自带的
- 团队协作:
- 确保团队统一使用 PyQt 或 PySide,避免混淆工具链。
- 将
.ui
文件纳入版本管理(XML 格式易合并)。
- 开发流程:
- 动态加载:适合快速迭代,但需附带
.ui
文件。 - 预编译:用
pyuic5
或pyside6-uic
将.ui
转为 Python 代码,减少运行时依赖:
- 动态加载:适合快速迭代,但需附带
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,无需重复安装。