【问题标题】:Documenting Qt project using Doxygen使用 Doxygen 记录 Qt 项目
【发布时间】:2013-10-03 21:01:36
【问题描述】:

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

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

OtherClass *myOtherObject;

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

QPointer <OtherClass> myOtherObject;

或者

QList <OtherClass*> myOtherObjects;

那么这些不会显示在图表中。

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

【问题讨论】:

    标签: qt doxygen


    【解决方案1】:

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

    过滤器

    过滤器是用 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
    

    过滤前

    过滤后

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 2011-04-09
      • 2011-09-14
      • 2010-10-07
      • 2013-04-27
      • 2017-08-25
      相关资源
      最近更新 更多