添加一个新模块

添加新模块的原因有很多,最重要的一个原因是当Qt在新版本中启用或包含一个新模块时。

添加绑定和文档是包含新模块的基本要素,但添加测试和示例是理想的选择。

添加绑定

  • 找到正确的名称(查看Qt的包含路径)。

  • 将模块添加到 coin/dependencies.yaml 文件中。

  • 将其添加到 sources/pyside6/cmake/PySideHelpers.cmake

  • 将其添加到 build_scripts/wheel_files.py(插件,翻译)。

  • 将现有模块复制到 sources/pyside6/PySide6/

  • 调整typesystem.xmlCMakeList.txt(例如使用Qt Creator的大小写保留替换功能)。

  • 确保依赖项是正确的。

  • 找到导出的公共类,将它们添加到typesystem.xml文件中,检查它们是value-type还是object-type。添加它们的枚举和标志。

  • 将包装文件添加到 CMakeList.txt

  • sources/pyside6/tests下创建一个测试目录,并包含一个空的CMakeList.txt

  • 尝试将模块添加到--module-subset选项中,使用setup.py进行构建。

  • 注意日志中的shiboken警告。

  • 请注意,ninja 混合了标准输出和标准错误,因此,第一个警告通常隐藏在进度消息后面。

  • 一个方便的方法是使用 qt-creator/scripts/shiboken2tasks.py*Qt Creator* 仓库 将它们转换为一个 .tasks 文件,该文件可以加载到 Qt Creator 的 问题面板中。

  • generate_pyi尝试导入模块以创建签名时,可能会出现链接错误。这些错误表明缺少源文件条目或模块本身存在错误。

注意

为了使构建成功,模块必须遵循Qt的约定,使用#include ,因为在PySide中没有传递模块的包含路径。

分布

  • 根据Qt Modules确定模块属于哪个轮子。

  • 将模块添加到build_scripts/wheel_files.py中,以供create_wheels.py使用。

  • 将模块添加到其中一个 README.pyside6_*.md 文件中。

添加文档

  • 将条目添加到 sources/pyside6/doc/modules.rst

  • sources/pyside6/doc/qtmodules中添加一个.qdocconf.in文件。

  • sources/pyside6/doc/extras 中添加模块描述 .rst 文件。