Spec-Zone.ru › Qt 5.13

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

Существует несколько типов предопределённых категорий или типов документации:

  • Руководства по применению
  • Учебник
  • Обзор
  • Статья
  • ЧАВО (Часто Задаваемые Вопросы)
  • Документация API C++
  • Документация типов QML
  • Пример кода

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

Документация API

QDoc отлично подходит для создания документации API на основе набора исходного кода и документации в комментариях QDoc. В частности, QDoc осведомлён об архитектуре Qt и может проверить существование документации класса, функции или свойства Qt C++. QDoc выдаёт предупреждения и ошибки, если не может связать документацию с элементом кода или если элемент кода не имеет документации.

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

QDoc будет анализировать заголовочные файлы (обычно .h файлы) для построения дерева структуры классов. Затем QDoc проанализирует исходные и файлы документации, чтобы прикрепить документацию к структуре класса. После этого QDoc сгенерирует страницу для класса.

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

Стили языка

Для создания качественной документации API, справочники Qt API следуют определённым правилам языка. Хотя содержание этой страницы демонстрирует, как создавать документацию API, правила стилей демонстрируют, как справочные материалы следуют согласованному использованию языка.

  • Стиль документации C++
  • Стиль документации QML

Документирование типов QML

В мире QML есть дополнительные сущности, которые нам нужно документировать, такие как сигналы QML, присоединённые свойства и методы QML. Внутренне они используют технологии Qt, однако документация API QML требует другой структуры и соглашений об именовании по сравнению с документацией API Qt C++.

Список команд QDoc, относящихся к QML:

  • \qmlattachedproperty
  • \qmlattachedsignal
  • \qmlbasictype
  • \qmltype - создаёт документацию типа QML
  • \qmlmethod
  • \qmlproperty
  • \qmlsignal
  • \inherits
  • \qmlmodule
  • \inqmlmodule
  • \instantiates

Примечание: Не забудьте включить разбор QML, добавив тип файла *.qml в переменную fileextension.

Для документирования типа QML начните с создания комментария QDoc, который использует команду \qmltype в качестве команды темы.

Парсер QML

Если ваш тип QML определён в файле qml, документируйте его там. Если ваш тип QML представлен классом C++, документируйте его в файле cpp для этого класса C++ и включите команду \instantiates, чтобы указать имя класса C++. Не документируйте тип QML в файле cpp, если тип QML определён в файле qml.

При документировании типа QML в файле qml размещайте каждый комментарий QDoc непосредственно над тем элементом, к которому он относится. Например, размещайте комментарий QDoc, содержащий команду \qmltype (команда темы), непосредственно над внешним типом QML в файле qml. Размещайте комментарий для документирования свойства QML непосредственно над объявлением свойства и так далее для обработчиков сигналов QML и методов QML. Обратите внимание, что при документировании свойств QML в файле qml обычно не включаете команду \qmlproperty как команду темы (которую нужно сделать при документировании типов QML в файлах cpp), так как парсер QML автоматически связывает каждый комментарий QDoc со следующим объявлением QML, которое он анализирует. То же самое относится к комментариям обработчиков сигналов QML и методов QML. Но иногда полезно включать одну или несколько команд \qmlproperty в комментарий, например, когда тип свойства — это другой тип QML, и вы хотите, чтобы пользователь использовал только определённые свойства в этом другом типе QML, но не все из них. Но при документировании свойства, которое имеет псевдоним, размещайте комментарий QDoc для него непосредственно над объявлением псевдонима. В этих случаях комментарий QDoc *должен* содержать команду \qmlproperty, так как это единственный способ, которым QDoc может узнать тип алиасированного свойства.

При документировании типа QML в файле cpp соответствующего класса C++ (если он есть), обычно размещайте каждый комментарий QDoc непосредственно над документируемым элементом. Однако QDoc не использует парсер QML для анализа этих файлов (используется парсер C++), поэтому эти комментарии QML QDoc могут появляться где угодно в файле cpp. Обратите внимание, что комментарии QML QDoc в файлах cpp *должны* использовать команды QML. То есть, команда \qmltype *должна* появляться в комментарии QDoc для типа QML, а команда \qmlproperty *должна* появляться в каждом комментарии QML QDoc для свойства QML.

Модули QML

Тип QML принадлежит к модулю. Модуль может включать все связанные типы для платформы или содержать определённую версию Qt Quick. Например, типы QML Qt Quick 2 принадлежат модулю Qt Quick 2, а также существует модуль Qt Quick 1 для более старых типов, введённых в Qt 4.

Модули QML позволяют группировать типы QML. Команда темы \qmltype должна иметь контекстную команду \inqmlmodule для связи типа с модулем QML. Аналогично, команда темы \qmlmodule должна существовать в отдельном файле .qdoc для создания страницы обзора модуля. На странице обзора будут перечислены типы QML модуля QML.

Ссылки на типы QML должны поэтому также содержать имя модуля. Например, если тип, называемый TabWidget, находится в модуле UIComponents, он должен быть связан как UIComponents::TabWidget.

Пример UIComponents демонстрирует правильное использование команд QDoc для документирования типов QML и модулей QML.

Только для чтения и внутренние свойства QML

QDoc обнаруживает свойства QML, которые помечены как readonly. Обратите внимание, что свойство должно быть инициализировано значением.

readonly property int sampleReadOnlyProperty: 0

Например, пример типа TabWidget имеет вымышленное свойство только для чтения sampleReadOnlyProperty. Его объявление имеет идентификатор readonly и оно имеет начальное значение.

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

Статьи и обзоры

Статьи и обзоры — это стиль написания, который лучше всего использовать для предоставления сводных данных по теме или концепции. Это может ввести технологию или обсудить, как можно применить концепцию, но без слишком подробного обсуждения точных шагов. Однако этот тип контента может служить отправной точкой для читателей, чтобы найти учебные и справочные материалы, такие как учебники, примеры и документацию классов. Примером обзора может быть страница продукта, например, общее обсуждение Qt Quick, отдельных модулей, принципов проектирования или инструментов.

Чтобы указать, что документ является статьёй, добавьте ключевое слово article к команде \page:

/*!
    \page overview-qt-technology.html overview
    \title Overview of a Qt Technology

    \brief provides a technology never seen before.

*/

В разделе команд темы написания приведён список доступных аргументов команды \page.

Учебники, Руководства по применению, ЧАВО

Учебники, руководства по применению и ЧАВО (Часто Задаваемые Вопросы) — это все учебные материалы, в которых они учат или предписывают читателю. Учебники — это материалы, предназначенные для сопровождения читателя по прогрессивному пути обучения концепции или технологии. Руководства по применению и ЧАВО предоставляют рекомендации, представляя материалы в виде ответов на часто задаваемые вопросы. Руководства по применению и ЧАВО предназначены для лёгкого доступа и не обязательно представляются в линейной последовательности.

Для создания этих типов помечайте страницы, указав аргумент type для команды \page. Аргумент type — это второй аргумент, а имя файла — первый.

/*!
    \page altruism-faq.html faq
    \title Altruism Frequently Asked Questions

    \brief All the questions about altruism, answered.

    ...
*/

В разделе команд темы написания приведён список доступных аргументов команды \page.

Примеры кода

Примеры — это эффективный способ продемонстрировать практическое применение конкретной технологии или концепции. Что касается программного обеспечения промежуточного уровня, это обычно в форме приложения, использующего простой код и чёткие объяснения того, что делает код. Любой модуль, API, проект, паттерн и т. д. должны иметь хотя бы один хороший пример.

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

QDoc создаст страницу, содержащую пример кода с описанием, используя команду \example.

/*!
    \title UI Components: Tab Widget Example
    \example declarative/ui-components/tabwidget

    This example shows how to create a tab widget. It also demonstrates how
    \l {Property aliases}{property aliases} and
    \l {Introduction to the QML Language#Default Properties}{default properties} can be used to collect and
    assemble the child items declared within an \l Item.

    \image qml-tabwidget-example.png
*/

QDoc будет использовать каталог, указанный в переменной ввода exampledirs, для поиска файла Qt Project (.pro) для генерации файлов примера. Сгенерированный HTML будет иметь имя файла declarative-ui-components-tabwidget.html. QDoc также выведет весь пример кода.

Примечание: Файл проекта примера должен совпадать с именем каталога.

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

Spec-Zone.ru

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