使用Doxygen记录Qt项目

时间:2013-09-27 14:09:24

标签: qt doxygen

我正在尝试使用Qt记录基于Doxygen的项目。这看起来是一个很好的方式。我能够生成一切正常。我对为对象绘制的使用关系图特别感兴趣。这些显示了对象引用其他对象的位置。

在我有一个指向另一个对象的简单指针(例如:

)的情况下再次正常工作
OtherClass *myOtherObject;

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

QPointer <OtherClass> myOtherObject;

或者

QList <OtherClass*> myOtherObjects;

然后这些没有显示在图表中。

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

1 个答案:

答案 0 :(得分: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

过滤前

Screenshot of before applying filter

过滤后

Screenshot of after applying filter