修复文档问题#

修复文本#

Shiboken 的 <inject-documentation> 元素可用于添加文本。虽然目前尚未实现其 "replace" 模式。

修复代码片段#

将 Python 等效代码置于 sources/pyside6/doc/snippets 目录下可以替换代码片段。该目录结构与 Qt 保持一致。要将 ID 为 0 的代码片段替换为 qtbase/examples/foo/snippet.cpp 中的代码,请在该目录下放置一个文件 qtbase/examples/foo/snippet_0.cpp.py(每个文件一个代码片段,代码片段 ID 添加到基本名称之后)。

更复杂的映射可以添加到 tools/snippets_translate/override.py

在 Qt 主要版本更改后重新创建模块描述

源代码树包含 .rst 文件,这些文件包含位于 doc/extras 中的模块描述(例如命名为 “QtCore.rst”)。它们是从 C++ 模块描述中提取/改编而来的。如果没有模块描述文件,Shiboken 将从 qdoc 生成的 webxml 文件中提取模块描述。这将在构建目录的 doc/rst/PySide6/&lt;module&gt;/index.rst 下完成。这可以用作模块描述文件的起点。应删除有关构建说明等特定于 C++ 的信息。

描述可以链接到教程,这些教程可以添加到 additionaldocs.lst 以进行 webxml 提取。

维护 additionaldocs.lst#

该文件是附加文档文件的列表。这些都是由文档引用的 Qt 教程。它们将由 Shiboken/sphinx 进行一些 Python 适配。

列表可以由以下脚本和一些手动编辑创建。它几乎可以发现所有文档。其中许多可能没有引用,但是没有很好的方法过滤这些文档。应该删除 Python 中存在的示例页面。

for F in *.webxml
do
    echo "$F" | egrep '(-index)|(-module)|(-qmlmodule)\.webxml$' > /dev/null
    if [ $? -ne 0 ]
    then
        if fgrep '<para>' "$F" > /dev/null # Exclude reference only
        then
            egrep "(<class )|(<namespace )" $F > /dev/null || echo $F
        fi
    fi
done

继承图#

inheritance_diagram.pyproject 列出涉及继承图生成的脚本,inheritance_diagram.py 是 sphinx 主要使用的脚本。其他脚本有主要的测试驱动程序用于检查。

用于确定继承的脚本有两个:* json_inheritance.py(环境变量 INHERITANCE_FILE)读取一个

继承.json 文件,其中包含由 shiboken 的文档生成器生成的类层次结构。

  • import_inheritance.py 实际上尝试导入类(旧版)