添加新的模块#
新模块可以出于许多原因添加,最重要的是当Qt在新版本中启用或包含一个新模块时。
添加绑定和文档是包含新模块的必要条件,但添加测试和示例是理想的。
添加绑定#
找到正确的名称(查看Qt的包含路径)。
将模块添加到
coin/dependencies.yaml
文件。将其添加到
sources/pyside6/cmake/PySideHelpers.cmake
。将其添加到
build_scripts/wheel_files.py
(插件,翻译)。将现有模块复制到
sources/pyside6/PySide6/<name>
。适配
typesystem.xml
和CMakeList.txt
(例如使用 Qt Creator 的保留大小写替换功能)。确保依赖项正确。
找到导出的公共类,将它们添加到
typesystem.xml
文件,并检查它们是否是value-type
或object-type
。添加它们的枚举和标志。将包装文件添加到
CMakeList.txt
。在
sources/pyside6/tests
下创建一个包含空CMakeList.txt
的测试目录。尝试使用
setup.py
的--module-subset
选项添加模块进行构建。注意日志中shiboken警告。
请注意,
ninja
混合了标准输出和标准错误,因此第一个警告通常隐藏在一个进度消息后面。一个方便的做法是使用来自 Qt Creator 仓库 *Qt Creator* 的
qt-creator/scripts/shiboken2tasks.py
将它们转换为.tasks
文件,这可以在 Qt Creator 的问题面板中加载。当
generate_pyi
导入尝试创建签名的模块时,可能会出现链接错误。这表明缺少源文件条目或模块本身存在错误。
注意
为了确保构建成功,模块必须遵循 Qt 使用 #include <QtModule/header.h>
的约定,因为 PySide 中没有传递模块包含路径。
分发#
根据 Qt Modules 确定模块属于哪个 wheel。
将模块添加到
build_scripts/wheel_files.py
中,以便由create_wheels.py
使用。将模块添加到其中一个
README.pyside6_*.md
文件中。
添加文档#
在
sources/pyside6/doc/modules.rst
中添加条目。在
sources/pyside6/doc/qtmodules
中添加 .qdocconf.in 文件。将模块描述
.rst
文件添加到sources/pyside6/doc/extras
中。