Spec-Zone.ru › Qt 5.15

Написание документации

Комментарии QDoc

Документация содержится в комментариях QDoc, ограниченных /*! и */. Обратите внимание, что это допустимые комментарии в C++, QML и JavaScript.

Внутри комментария QDoc используется //! для однострочного комментария к документации; сам комментарий и всё, что следует за ним до новой строки, исключается из сгенерированного вывода.

QDoc будет анализировать файлы C++ и QML, чтобы найти комментарии QDoc. Чтобы явно исключить определённый тип файла, исключите его из файла настройки.

Команды QDoc

QDoc использует команды для получения информации о документации. Topic команды определяют тип элемента документации, context команды предоставляют подсказки и информацию о теме, а markup команды предоставляют информацию о том, как QDoc должен отформатировать часть документации.

Темы QDoc

Каждый комментарий QDoc должен иметь тип темы. Тема отличает его от других тем. Чтобы указать тип темы, используйте одну из нескольких команд темы.

QDoc соберет похожие темы и создаст страницу для каждой. Например, все перечисления, свойства, функции и описание классов конкретного класса C++ будут находиться на одной странице. Общая страница задается с помощью команды \page, а имя файла является аргументом.

Пример команд тем:

  • \enum — для документации перечислений
  • \class — для документации классов C++
  • \qmltype — для документации типов QML
  • \page — для создания страницы.

Команда \page предназначена для создания статей, которые не являются частью исходной документации. Команда также может принимать два аргумента: имя файла статьи и тип документации. Возможные типы:

  • howto
  • overview
  • tutorial
  • faq
  • article — по умолчанию, если тип не указан
/*!
    \page altruism-faq.html faq
    \title Altruism Frequently Asked Questions

    \brief All the questions about altruism, answered.

    ...
*/

На странице Команды тем содержится информация обо всех доступных командах тем.

Контексты тем

Команды контекста предоставляют QDoc подсказку о контексте темы. Например, если функция C++ устарела, то она должна быть помечена как устаревшая с помощью команды \obsolete. Аналогично, навигация по страницам \nextpage и заголовок страницы \title предоставляют дополнительную информацию о странице QDoc.

QDoc создаст дополнительные ссылки или страницы для этих контекстов. Например, группа создается с помощью команды \group, а члены имеют команду \ingroup. Имя группы передается как аргумент.

На странице Команды контекста приведен список всех доступных команд контекста.

Разметка документации

QDoc может выполнять разметку текста, аналогично другим инструментам разметки или документирования. QDoc может пометить часть текста полужирным шрифтом, когда текст разметен с помощью команды \b.

\b{This} text will be in \b{bold}.

На странице Команды разметки приведен полный список доступных команд разметки.

Структура документации

В сущности, для создания страницы QDoc должны быть присутствовать некоторые необходимые компоненты.

  • Назначение темы комментарию QDoc — комментарий может быть страницей, документацией свойства, документацией класса или любой из доступных команд темы.
  • Придание контекста теме — QDoc может связать определённые темы с другими страницами, например, связать устаревшие функции, когда документация помечена с помощью \obsolete.
  • Пометка разделов документа с помощью команд разметки — QDoc может создавать макеты и форматировать документацию для документации.

В Qt класс QVector3D был документирован с помощью следующего комментария QDoc:

/*!
    \class QVector3D
    \brief The QVector3D class represents a vector or vertex in 3D space.
    \since 4.6
    \ingroup painting-3D

    Vectors are one of the main building blocks of 3D representation and
    drawing.  They consist of three coordinates, traditionally called
    x, y, and z.

    The QVector3D class can also be used to represent vertices in 3D space.
    We therefore do not need to provide a separate vertex class.

    \note By design values in the QVector3D instance are stored as \c float.
    This means that on platforms where the \c qreal arguments to QVector3D
    functions are represented by \c double values, it is possible to
    lose precision.

    \sa QVector2D, QVector4D, QQuaternion
*/

У него есть конструктор QVector3D::QVector3D(), который был документирован с помощью следующего комментария QDoc:

/*!
    \fn QVector3D::QVector3D(const QPoint& point)

    Constructs a vector with x and y coordinates from a 2D \a point, and a
    z coordinate of 0.
*/

Различные комментарии могут находиться в разных файлах, и QDoc соберет их в зависимости от их темы и контекста. Результирующая документация из фрагментов генерируется в документацию класса QVector3D.

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

Статья создается с помощью команды \page. Первый аргумент — это HTML-файл, который создаст QDoc. Тема дополняется командами контекста, командами \title и \nextpage. Существует ряд других команд QDoc, таких как команда \list.

/*!
    \page generic-guide.html
    \title Generic QDoc Guide
    \nextpage Creating QDoc Configuration Files
    There are three essential materials for generating documentation with QDoc:

    \list
        \li \c QDoc binary (\c {qdoc})
        \li \c qdocconf configuration files
        \li \c Documentation in \c C++, \c QML, and \c .qdoc files
    \endlist
*/

Раздел о командах тем предоставляет обзор нескольких других типов тем.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qdoc-guide-writing.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API