Как сделать комментарии Qt свойства doxygen? - PullRequest
10 голосов
/ 06 февраля 2011

Я хотел бы прикрепить комментарии Doxygen к моим Q_PROPERTY.

Например:

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

Как я могу сказать Doxygen, что title - это свойство в системе мета-объектов Qt, а title () и setTitle () - функции доступа? Я хотел бы добиться аналогичного результата для this .

Ответы [ 3 ]

13 голосов
/ 06 февраля 2011

doxygen поддерживает свойства Qt из коробки.Просто добавьте комментарий к документации над объявлением свойства, и вы увидите «свойство» в выводе doxygen.

Обратите внимание, что функции доступа будут документированы отдельно, если они также имеют комментарии к документации.Поэтому вам необходимо удалить комментарии к документации из этих функций доступа, если вы хотите подавить их в сгенерированной документации.

13 голосов
/ 03 мая 2013

Я наконец нашел способ сделать это.

  • В исходных файлах:

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

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

Что я сделал, так это определил псевдоним с именем «accessors», который создаст абзац с заголовком «Accessors:», за которым следуетссылочные методы.

Вот как это выглядит в документации:

enter image description here


Подсказка: если имя свойствааналогичен методу чтения свойства. Возможно, вы захотите поставить перед именем доступа в документации имя «%» (в противном случае средство доступа будет отображаться в виде ссылки, указывающей на себя):

/**
 * ...
 * @accessors %name(), setName()
 * ...
 */
2 голосов
/ 06 февраля 2011

Комментарий doxygen в qobject.cpp для свойства objectName начинается с тега \ property:

/*!
    \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 генерирует свои документы - возможно, вам понадобятся некоторые макросы / псевдонимы в конфигурации doxygen.

...