2011-02-06 6 views
9

Q_PROPERTYにDoxygenのコメントを添付したいと思います。Qtのプロパティをdoxygenでコメントする方法は?

例えば:

song.h

class Song : public QObject 
{ 
    Q_OBJECT 

private: 
    Q_PROPERTY(QString title READ title WRITE setTitle); 
    QString _title; 

public: 
    QString title() const; 
    void setTitle(const QString& value); 
}; 

song.cpp

#include "song.h" 

Song::Song(QObject *parent) : 
    QObject(parent) 
{ 
} 

QString Song::title() const { return _title; } 

void Song::setTitle(const QString &value) { _title = value; } 

は、どのように私はタイトルがQtのメタオブジェクトシステムとタイトル内のプロパティであることをDoxygenのを伝えることができます()とsetTitle()はアクセサ関数ですか?私はthisと同様の出力を達成したいと思います。

答えて

12

私は最終的にこれを行う方法を見つけました。 Doxyfile

/** 
* @brief The name of the user. 
* @accessors name(), setName() 
*/ 
Q_PROPERTY(QString name READ name WRITE setName) 
    • ソースファイルで

      私がやった何

      ALIASES = "accessors=\par Accessors:\n" 
      

    が生成されますan aliasという名前の "アクセサ" を定義で「Accessors:」というタイトルの付いた段落と、それに続く参照される方法。

    ここでは、ドキュメントに次のようになります。

    enter image description here


    ヒント:プロパティの名前は、プロパティを読み取るための方法と同じである場合、あなたがしたいことドキュメント内のアクセサー名の前に「%」(それ以外の場合、アクセサーはそれ自身を指すリンクとして表示されます):

    /** 
    * ... 
    * @accessors %name(), setName() 
    * ... 
    */ 
    
  • 2

    のObjectNameプロパティのqobject.cppでdoxygenのコメントは、 "\プロパティ" タグで始まり:

    /*! 
        \property QObject::objectName 
    
        \brief the name of this object 
    
        You can find an object by name (and type) using findChild(). You can 
        find a set of objects with findChildren(). 
    
        \snippet doc/src/snippets/code/src_corelib_kernel_qobject.cpp 5 
    
        By default, this property contains an empty string. 
    
        \sa metaObject(), QMetaObject::className() 
    */ 
    

    あなたはそれを使用してみましたか?それがうまく動作しない場合は、Qtがdocsをどのように生成するのかを調べるつもりです。おそらくdoxygen設定でマクロ/エイリアスが必要になるかもしれません。

    +0

    Qtはドキュメントを生成するためにdoxygenではなくqdocを使用しますが、doxygenは合理的にqdocとの互換性を保ちます。 –

    12

    doxygenは、そのままの状態でQtのプロパティをサポートします。プロパティ宣言の上にドキュメンテーションコメントを追加するだけで、doxygen出力に「プロパティ」が表示されます。

    ドキュメントのコメントがある場合は、アクセサの機能は個別に文書化されることに注意してください。したがって、生成されたドキュメントでこれらのアクセサー関数を抑制したい場合は、これらのアクセサー関数からドキュメンテーションコメントを削除する必要があります。

    関連する問題