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 に答える