我正在尝试使用Qt
记录基于Doxygen
的项目。这看起来是一个很好的方式。我能够生成一切正常。我对为对象绘制的使用关系图特别感兴趣。这些显示了对象引用其他对象的位置。
在我有一个指向另一个对象的简单指针(例如:
)的情况下再次正常工作OtherClass *myOtherObject;
但是,如果我使用Qt之类的东西:
QPointer <OtherClass> myOtherObject;
或者
QList <OtherClass*> myOtherObjects;
然后这些没有显示在图表中。
是否可以配置Doxygen
以了解这些也是使用关系?
答案 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