3

我正在尝试Qt使用Doxygen. 这看起来是个不错的方法。我能够生成一切正常。我对为对象绘制的使用关系图特别感兴趣。这些显示了对象引用其他对象的位置。

当我有一个指向另一个对象的简单指针时,这又可以正常工作,例如:

OtherClass *myOtherObject;

但是,如果我使用 Qt 之类的东西:

QPointer <OtherClass> myOtherObject;

或者

QList <OtherClass*> myOtherObjects;

然后这些不会显示在图表中。

是否可以配置Doxygen以了解这些也是使用关系?

4

1 回答 1

0

通过使用输入过滤器,我找到了部分解决您的问题的方法。启用过滤器后,图表正确,但文本不正确。下面的示例屏幕截图。

筛选

该过滤器是用 Python 编写的,因此可以在任何平台上运行。

将它与 Doxyfile 一起保存在一个文件中(例如 qt-filter.py)。

import re, sys

PATTERNS = [
    (re.compile(r"QPointer *<(.*)>"), r"\1*"),
    (re.compile(r"QList *<(.*)>"), r"\1")
]

with open(sys.argv[1], "r") as infile:
    for line in infile:
        prev = None
        while line != prev:
            prev = line
            for regex, repl in PATTERNS:
                line = regex.sub(repl, line)
        sys.stdout.write(line)

配置

在您的 Doxyfile 中编辑该FILTER_PATTERNS行以包含:

FILTER_PATTERNS = *.hpp=qt-filter.py

过滤前

应用过滤器之前的屏幕截图

过滤后

应用过滤器后的屏幕截图

于 2013-09-28T21:54:51.373 回答