使用Doxygen记录Qt项目
我正在尝试使用使用Doxygen记录Qt项目,qt,doxygen,Qt,Doxygen,我正在尝试使用Doxygen记录我的基于Qt的项目。这看起来是个不错的选择。我可以生成一切ok。我对为对象绘制的使用关系图特别感兴趣。它们显示了对象引用其他对象的位置 在我有一个指向另一个对象的简单指针的情况下,这同样可以正常工作,例如: OtherClass *myOtherObject; 但如果我使用Qt,比如: QPointer <OtherClass> myOtherObject; QPointer-myOtherObject; 或 QList myOtherObjec
Doxygen
记录我的基于Qt
的项目。这看起来是个不错的选择。我可以生成一切ok。我对为对象绘制的使用关系图特别感兴趣。它们显示了对象引用其他对象的位置
在我有一个指向另一个对象的简单指针的情况下,这同样可以正常工作,例如:
OtherClass *myOtherObject;
但如果我使用Qt,比如:
QPointer <OtherClass> myOtherObject;
QPointer-myOtherObject;
或
QList myOtherObjects;
那么这些不会显示在图表中
是否可以配置
Doxygen
以了解这些也是使用关系?我通过使用输入过滤器找到了问题的部分解决方案。启用过滤器后,图表正确,但文本不正确。下面的示例屏幕截图
滤器
过滤器是用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)
过滤前
后过滤器
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)
FILTER_PATTERNS = *.hpp=qt-filter.py