Стиль документации C++
Для генерации документации QDoc проходит по исходному коду и генерирует документацию для типов C++, таких как классы. QDoc затем связывает методы-члены, свойства и другие типы с соответствующим классом.
Обратите внимание, что документация должна быть в файлах реализации, таких как .cpp.
Документация класса
Документация класса генерируется с помощью команды \class и именем класса в качестве первого аргумента.
/*!
\class QCache
\brief The QCache class is a template class that provides a cache.
\ingroup tools
\ingroup shared
\reentrant
QCache\<Key, T\> defines a cache that stores objects of type T
associated with keys of type Key. For example, here's the
definition of a cache that stores objects of type Employee
associated with an integer key:
\snippet code/doc_src_qcache.cpp 0
Here's how to insert an object in the cache:
\snippet code/doc_src_qcache.cpp 1
... detailed description omitted
\sa QPixmapCache, QHash, QMap
*/ Команды контекста добавляют информацию о классе, например, о модуле или о версии, в которую был добавлен класс.
Некоторые распространённые команды контекста:
- \brief - краткое описание класса (обязательно)
- \since - версия, к которой был добавлен класс (обязательно)
- \internal - помечает класс как внутренний. Внутренние классы не отображаются в общедоступной документации API.
Краткое и подробное описание
Краткое описание помечено командой \brief и предназначено для краткого описания цели или функциональности класса. Для C++ классов QDoc возьмет класс и создаст аннотированную информацию для класса. Аннотированная информация отображается в списках и таблицах, которые отображают класс.
Краткое описание на C++ должно начинаться со:
"The <C++ class name> class"
Раздел подробного описания начинается после краткого описания. Он предоставляет более подробную информацию о классе. Подробное описание может содержать изображения, фрагменты кода или ссылки на другие соответствующие документы. Между кратким и подробным описанием должна быть пустая строка.
Члены-функции
Обычно документация функции располагается непосредственно перед реализацией функции в файле .cpp. Для документации функций, которая не находится непосредственно над реализацией, требуется команда \fn.
/*! \fn QString &QString::remove(int position, int n) Removes \a n characters from the string, starting at the given \a position index, and returns a reference to the string. If the specified \a position index is within the string, but \a position + \a n is beyond the end of the string, the string is truncated at the specified \a position. \snippet qstring/main.cpp 37 \sa insert(), replace() */ QString &QString::remove(int pos, int len)
Документация функции начинается с глагола, указывающего на операцию, которую выполняет функция. Это также относится к конструкторам и деструкторам.
Некоторые распространённые глаголы для документации функций:
- "Создаёт..." - для конструкторов
- "Уничтожает..." - для деструкторов
- "Возвращает..." - для функций-аксессоров
Документация функции должна документировать:
- тип возвращаемого значения
- параметры
- действия функций
Команда \a помечает параметр в документации. Документация типа возвращаемого значения должна ссылаться на документацию типа или быть помечена командой \c в случае логических значений.
/*!
Returns \c true if a QScroller object was already created for \a target; \c false otherwise.
\sa scroller()
*/
bool QScroller::hasScroller(QObject *target) Свойства
Документация свойства находится непосредственно над реализацией функции чтения. Команда темы для свойств - \property.
/*!
\property QVariantAnimation::duration
\brief the duration of the animation
This property describes the duration in milliseconds of the
animation. The default duration is 250 milliseconds.
\sa QAbstractAnimation::duration()
*/
int QVariantAnimation::duration() const Документация свойства обычно начинается с "Это свойство...", но есть альтернативные выражения:
- "Это свойство содержит..."
- "Это свойство описывает..."
- "Это свойство представляет..."
- "Возвращает
trueкогда... иfalseкогда..." - для свойств, которые читаются. - "Устанавливает..." - для свойств, которые конфигурируют тип.
Документация свойства должна включать:
- описание и поведение свойства
- допустимые значения для свойства
- значение свойства по умолчанию
Аналогично функциям, тип по умолчанию может быть связан или помечен командой \c.
Пример стиля диапазона значений:
Значения изменяются от 0,0 (без размытия) до maximumRadius (максимальное размытие). По умолчанию свойство установлено в 0,0 (без размытия).
Сигналы, уведомления и слоты
Команда темы для сигналов, уведомлений и слотов - \fn. Документация сигнала указывает, когда они активируются или испускаются.
/*! \fn QAbstractTransition::triggered() This signal is emitted when the transition has been triggered (after onTransition() has been called). */
Документация сигналов обычно начинается с "Этот сигнал активируется, когда...". Вот альтернативные стили:
- "Этот сигнал активируется, когда..."
- "Активируется, когда..."
- "Издается, когда..."
Для слотов или уведомлений должна быть задокументирована ситуация, когда они выполняются или вызываются сигналом.
- "Выполняется, когда..."
- "Этот слот выполняется, когда..."
Для свойств, имеющих перегруженные сигналы, QDoc группирует перегруженные уведомления вместе. Чтобы сослаться на определённую версию уведомления или сигнала, просто сослайтесь на свойство и укажите, что существуют разные версии уведомления.
/*!
\property QSpinBox::value
\brief the value of the spin box
setValue() will emit valueChanged() if the new value is different
from the old one. The \l{QSpinBox::}{value} property has a second notifier
signal which includes the spin box's prefix and suffix.
*/ Перечисления, пространства имён и другие типы
Перечисления, пространства имён и макросы имеют команду темы для своей документации:
Стиль языка для этих типов упоминает, что это перечисление или макрос, и продолжает описание типа.
Для перечислений команда \value предназначена для перечисления значений. QDoc создаёт таблицу значений для перечисления.
/*!
\enum QSql::TableType
This enum type describes types of SQL tables.
\value Tables All the tables visible to the user.
\value SystemTables Internal tables used by the database.
\value Views All the views visible to the user.
\value AllTables All of the above.
*/
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qtwritingstyle-cpp.html