2011-02-06 21 views
9

Vorrei aggiungere commenti Doxygen ai miei Q_PROPERTY.Come commentare l'ossigeno Proprietà Qt?

Ad esempio:

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; } 

Come posso dire a Doxygen quel titolo è una struttura nel sistema Qt Meta-Object e titolo() e setTitle() sono le funzioni di accesso? Mi piacerebbe ottenere un output simile a this.

risposta

12

Ho finalmente trovato un modo per farlo.

  • Nei file di origine:

    /** 
    * @brief The name of the user. 
    * @accessors name(), setName() 
    */ 
    Q_PROPERTY(QString name READ name WRITE setName) 
    
  • Nella Doxyfile:

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

Quello che ho fatto è definire an alias denominati "accesso" che genereranno un paragrafo con il titolo "Accessors:" seguito dai metodi di riferimento.

Ecco come appare nella documentazione:

enter image description here


Suggerimento: se il nome della proprietà è la stessa come il metodo per la lettura della proprietà, si consiglia di precedere il nome dell'accessore nella documentazione con un '%' (altrimenti l'accessor verrà visualizzato come un collegamento che punta a se stesso):

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

Il commento doxygen in qobject.cpp per la proprietà objectName inizia con tag "\ proprietà":

/*! 
    \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() 
*/ 

Hai provato ad usarlo? Se non funziona, cercherò di scoprire come Qt genera i suoi documenti - forse hai bisogno di alcune macro/alias nella configurazione di doxygen.

+0

Qt non usa doxygen ma qdoc per generare la sua documentazione, ma doxygen cerca di rimanere ragionevolmente compatibile con qdoc. –

12

doxygen supporta le proprietà Qt fuori dalla scatola. Basta aggiungere un commento alla documentazione sopra la dichiarazione di proprietà, e vedrai una "proprietà" nell'output di doxygen.

Si prega di notare che le funzioni di accesso saranno documentate separatamente, se hanno anche commenti di documentazione. È quindi necessario rimuovere i commenti di documentazione da queste funzioni di accesso, se si desidera sopprimerli nella documentazione generata.

Problemi correlati