Qt C++ class 图表?
Qt C++ class diagrams?
我看到了非常广泛的 Qt C++ class 文档,例如在 https://doc.qt.io/qt-5/classes.html。但是文档是否包含 class 继承图,以便我们可以快速了解它们之间的关系?
正如@DmitrySazonov 所提到的,通常没有必要查看整个 Qt C++ class 图。
但是如果你有这种特殊需求,这里是非常好的工作场景。
由于 Qt 有详细记录的源代码,并且此代码是 qDoc-powered (which is compatible with doxygen)。您可以自己生成所需的图表。 (我不确定你要花多少时间,但可能会事先准备一些爆米花)
我将向您展示如何仅为 QtConcurrent
模块准备图表(doxygen 工作在 i7-6820HQ 上花了我 ~8s)。
- 安装氧气。通常:
sudo apt install doxygen
- 获取并解压 Qt 源代码 (http://download.qt.io/official_releases/qt/5.12/5.12.3/single/)。
- 使用控制台并导航到
qt-everywhere-src-5.12.3/qtbase/src/
。
- 通过命令生成标准
Doxygen
文件:
doxygen -g
- 编辑
qt-everywhere-src-5.12.3/qtbase/src/Doxygen
。追加下一行(或确保在 Doxyfile
中的任何地方都注释了这些变量的任何赋值):
EXTRACT_ALL = YES
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
UML_LOOK = YES
UML_LIMIT_NUM_FIELDS = 50
TEMPLATE_RELATIONS = YES
DOT_GRAPH_MAX_NODES = 100
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = YES
根据 this answer.
找到 INPUT
部分并输入:
INPUT = concurrent
找到 GENERATE_LATEX
部分并更改为:
GENERATE_LATEX = NO
注意: 如果您熟悉 doxygen
,请根据需要编辑 Doxyfile
-- 有很多可能的设置,例如徽标、附加文本、文件模式、排除等
- 只需 运行
doxygen
. 即可生成 doxygen 文档
因此,您将获得包含生成文档的文件夹 qt-everywhere-src-5.12.3/qtbase/src/html
。打开 index.html
.
查看结果refer to this page。
我看到了非常广泛的 Qt C++ class 文档,例如在 https://doc.qt.io/qt-5/classes.html。但是文档是否包含 class 继承图,以便我们可以快速了解它们之间的关系?
正如@DmitrySazonov 所提到的,通常没有必要查看整个 Qt C++ class 图。
但是如果你有这种特殊需求,这里是非常好的工作场景。 由于 Qt 有详细记录的源代码,并且此代码是 qDoc-powered (which is compatible with doxygen)。您可以自己生成所需的图表。 (我不确定你要花多少时间,但可能会事先准备一些爆米花)
我将向您展示如何仅为 QtConcurrent
模块准备图表(doxygen 工作在 i7-6820HQ 上花了我 ~8s)。
- 安装氧气。通常:
sudo apt install doxygen
- 获取并解压 Qt 源代码 (http://download.qt.io/official_releases/qt/5.12/5.12.3/single/)。
- 使用控制台并导航到
qt-everywhere-src-5.12.3/qtbase/src/
。 - 通过命令生成标准
Doxygen
文件:
doxygen -g
- 编辑
qt-everywhere-src-5.12.3/qtbase/src/Doxygen
。追加下一行(或确保在Doxyfile
中的任何地方都注释了这些变量的任何赋值):
EXTRACT_ALL = YES
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
UML_LOOK = YES
UML_LIMIT_NUM_FIELDS = 50
TEMPLATE_RELATIONS = YES
DOT_GRAPH_MAX_NODES = 100
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = YES
根据 this answer.
找到 INPUT
部分并输入:
INPUT = concurrent
找到 GENERATE_LATEX
部分并更改为:
GENERATE_LATEX = NO
注意: 如果您熟悉 doxygen
,请根据需要编辑 Doxyfile
-- 有很多可能的设置,例如徽标、附加文本、文件模式、排除等
- 只需 运行
doxygen
. 即可生成 doxygen 文档
因此,您将获得包含生成文档的文件夹 qt-everywhere-src-5.12.3/qtbase/src/html
。打开 index.html
.
查看结果refer to this page。