SuperAPI AI 工具集

qt-bindings

编程与开发

查看项目

更新于 10-15 23:48

技能介绍

用途:帮助开发者在 PySide6 与 PyQt6 之间做选择,并把旧版 PyQt5/PySide2 代码迁移到 Qt6 绑定。

主要能力:

  • 绑定对比:维护方(Qt 官方 vs Riverbank)、许可证(LGPL v3 vs GPL v3/商业)、商业使用、QML/Qt Quick 支持、类型存根、安装方式。默认推荐 PySide6(官方、LGPL、自带完整类型存根、QML 工具更好)。
  • 兼容层:可用 try/except 同时导入两种绑定,或使用社区维护的 qtpy 抽象层,通过 QT_API 环境变量选择后端。
  • 关键差异:信号槽命名(Signal/Slot vs pyqtSignal/pyqtSlot)、属性装饰器(Property vs pyqtProperty)、枚举必须全限定访问(如 Qt.AlignmentFlag.AlignLeft)、exec() 取代 exec_()。
  • 迁移步骤:批量替换导入(sed 命令)、替换信号槽装饰器、修正枚举写法、去掉 exec_() 后缀、移除已废弃 Qt5 API。PyQt5→PyQt6 保留 pyqt 前缀,仅改导入与枚举;PySide2→PySide6 改导入、exec_ 与枚举,且最低支持 Python 3.8(推荐 3.11)。
  • 类型存根:PySide6 自带,PyQt6 需安装 PyQt6-stubs,并可在 pyproject.toml 配置 pyright。

适用场景:Qt 桌面/QML 应用开发、跨绑定兼容代码、旧项目升级。

限制:资料未提供具体版本兼容矩阵、性能数据或完整迁移工具,实际迁移需自行验证。