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)。

  1. 安装氧气。通常:
sudo apt install doxygen
  1. 获取并解压 Qt 源代码 (http://download.qt.io/official_releases/qt/5.12/5.12.3/single/)。
  2. 使用控制台并导航到 qt-everywhere-src-5.12.3/qtbase/src/
  3. 通过命令生成标准Doxygen文件:
doxygen -g
  1. 编辑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 -- 有很多可能的设置,例如徽标、附加文本、文件模式、排除等

  1. 只需 运行 doxygen.
  2. 即可生成 doxygen 文档

因此,您将获得包含生成文档的文件夹 qt-everywhere-src-5.12.3/qtbase/src/html。打开 index.html.


查看结果refer to this page