Spec-Zone.ru › Qt 5.13

Разное

Эти команды предоставляют различные функции, связанные с визуальным представлением документации и процессом её генерации.

\annotatedlist

Команда \annotatedlist расширяется до списка членов группы, каждый член перечислен со своим кратким описанием. Ниже приведен пример из документации Qt Reference:

/ *!
    ...
    \section1 Drag and Drop Classes

    These classes deal with drag and drop and the necessary mime type
    encoding and decoding.

    \annotatedlist draganddrop

* /

Это генерирует список всех C++ классов и/или QML типов в группе draganddrop. C++ класс или QML тип в группе draganddrop будет иметь \ingroup draganddrop в своем комментарии \class или \qmltype.

\generatelist

Команда \generatelist расширяется до списка ссылок на элементы документации в группе. Ниже приведен пример из документации Qt Reference:

/ *!
    \page classes.html
    \title All Classes

    For a shorter list that only includes the most
    frequently used classes, see \l{Qt's Main Classes}.

    \generatelist classes Q
* /

Это генерирует страницу Все классы. Команда принимает следующие аргументы:

annotatedclasses

Аргумент annotatedclasses предоставляет таблицу, содержащую имена всех классов и описание каждого класса. Каждое имя класса является ссылкой на справочную документацию класса. Например:

QDial Округлённое поле ввода диапазона (например, спидометр или потенциометр)
QDialog Базовый класс окон-диалогов
QDir Доступ к структурам каталогов и их содержимому

Класс C++ документируется с помощью команды \class. Аннотация для класса берется из аргумента команды \brief комментария класса.

annotatedexamples

Аргумент annotatedexamples предоставляет полный список всех примеров в виде набора таблиц, содержащих названия всех примеров и описание каждого примера. Каждое название является ссылкой на документацию примера.

Для каждого модуля (который имеет документированные примеры) генерируется отдельная таблица, при условии, что модуль определил переменную конфигурации navigation.landingpage. Переменная landingpage используется в качестве заголовка, предшествующего каждой таблице.

annotatedattributions

Аргумент annotatedattributions предоставляет полный список всех атрибутов в виде набора таблиц, содержащих заголовки всех атрибутов и описание каждого атрибута. Каждое заголовок является ссылкой на страницу атрибута.

Для каждого модуля (который имеет атрибуты) генерируется отдельная таблица, при условии, что модуль определил переменную конфигурации navigation.landingpage. Переменная landingpage используется в качестве заголовка, предшествующего каждой таблице.

classes <prefix>

Аргумент classes предоставляет полный алфавитный список классов. Второй аргумент, <prefix>, является общим префиксом для имён классов. Имена классов будут сортироваться по символу, следующему за общим префиксом. Например, общим префиксом для классов Qt является Q. Аргумент общего префикса является необязательным. Если общий префикс не указан, имена классов будут сортироваться по первому символу.

Каждое имя класса становится ссылкой на справочную документацию класса. Эта команда используется для генерации страницы Все классы следующим образом:

/ *!
    \page classes.html
    \title All Classes
    \ingroup classlists

    \brief Alphabetical list of classes.

    This is a list of all Qt classes. For classes that
    have been deprecated, see the \l{Obsolete Classes}
    list.

    \generatelist classes Q
* /

Класс C++ документируется с помощью команды \class.

classesbymodule

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

Например, эту команду можно использовать на странице модуля следующим образом:

/ *!
    \page phonon-module.html
    \module Phonon
    \title Phonon Module
    \ingroup modules

    \brief Contains namespaces and classes for multimedia functionality.

    \generatelist{classesbymodule Phonon}

...

* /

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

qmltypesbymodule

Аналогично аргументу classesbymodule, но используется для перечисления QML типов из QML модуля, указанного со вторым аргументом.

Примечание: Поддержка этого аргумента была добавлена в QDoc 5.6.

jstypesbymodule

Аналогично аргументу classesbymodule, но используется для перечисления JavaScript типов из модуля, указанного со вторым аргументом.

Примечание: Поддержка этого аргумента была добавлена в QDoc 5.6.

examplefiles [regular_expression]

Аргумент examplefiles перечисляет файлы, которые являются частью проекта примера. Необязательный второй аргумент — это регулярное выражение; если он указан, перечисляются только файлы, путь к которым соответствует регулярному выражению.

Аргумент examplefiles может быть использован только в документации примера (см. \example), и обычно используется вместе с командой \noautolist.

exampleimages [regular_expression]

Аргумент exampleimages перечисляет изображения, которые являются частью проекта примера. Необязательный второй аргумент — это регулярное выражение; если он указан, перечисляются только файлы изображений, путь к которым соответствует регулярному выражению.

Аргумент exampleimages может быть использован только в документации примера (см. \example), и обычно используется вместе с командой \noautolist.

functionindex

Аргумент functionindex предоставляет полный алфавитный список всех документированных функций-членов. Обычно используется только для генерации страницы Индекс функций Qt следующим образом:

/ *!
    \page functions.html
    \title All Functions
    \ingroup funclists

    \brief All documented Qt functions listed alphabetically with a
    link to where each one is declared.

    This is the list of all documented member functions and global
    functions in the Qt API. Each function has a link to the
    class or header file where it is declared and documented.

    \generatelist functionindex
* /

legalese

Аргумент legalese сообщает QDoc сгенерировать список лицензий в текущем проекте документации. Каждая лицензия определяется с помощью команды \legalese.

overviews

Аргумент overviews используется для указания QDoc сгенерировать список, конкатенируя содержимое всех страниц \group. Qt использует его для генерации страницы обзоры следующим образом:

/ *!
    \page overviews.html

    \title All Overviews and HOWTOs

    \generatelist overviews
* /

attributions

Аргумент attributions используется для указания QDoc сгенерировать список атрибуций в документации.

related

Аргумент related используется в сочетании с командами \group и \ingroup для перечисления всех обзоров, связанных с указанной группой. Например, страница для страницы Программирование с Qt генерируется следующим образом:

/ *!
    \group qt-basic-concepts
    \title Programming with Qt

    \brief The basic architecture of the Qt cross-platform application and UI framework.

    Qt is a cross-platform application and UI framework for
    writing web-enabled applications for desktop, mobile, and
    embedded operating systems. This page contains links to
    articles and overviews explaining key components and
    techniuqes used in Qt development.

    \generatelist {related}
* /

Каждая страница, указанная на этой странице группы, содержит команду:

\ingroup qt-basic-concepts

\if

Команда \if и соответствующая команда \endif заключают части комментария QDoc, которые будут включены только в том случае, если условие, указанное в аргументе команды, истинно.

Команда считывает остальную часть строки и анализирует её как оператор C++ #if.

/ *!
    \if defined(opensourceedition)

    \note This edition is for the development of
    \l{Qt Open Source Edition} {Free and Open Source}
    software only; see \l{Qt Commercial Editions}.

    \endif
* /

Этот комментарий QDoc будет отображен только в том случае, если препроцессорный символ opensourceedition определен и указан в переменной defines в файле конфигурации, чтобы QDoc обрабатывал код внутри #ifdef и #endif:

defines = opensourceedition

Вы также можете определить препроцессорный символ вручную в командной строке. Дополнительную информацию см. в документации переменной defines.

См. также \endif, \else, defines и falsehoods.

\endif

Команда \endif и соответствующая команда \if заключают части комментария QDoc, которые будут включены, если условие, указанное в аргументе команды \if, истинно.

Дополнительную информацию см. в документации команды \if.

См. также \if, \else, defines и falsehoods.

\else

Команда \else задаёт альтернативу, если условие в команде \if ложно.

Команда \else может быть использована только внутри команд \if...\endif, но полезна, когда существует только две альтернативы.

\include

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

Команда полезна, когда какой-то фрагмент команд или текста требуется использовать в нескольких местах в документации. Используйте команду \include там, где вы хотите вставить фрагмент в документацию. Файл, содержащий включаемый фрагмент, должен находиться по пути(ям), указанным в переменной конфигурации QDoc sourcedirs. Это может быть любой файл, анализируемый QDoc (или даже тот же самый, где используется команда \include), или любой другой текстовый файл. Для хранения фрагментов в отдельном файле, который не должен анализироваться QDoc, используйте расширение файла, которое не указано в sources.fileextensions; например, .qdocinc.

Команда может иметь один или два аргумента. Первый аргумент — всегда имя файла. Содержимое файла должно быть вводом QDoc, то есть последовательностью команд и текста QDoc, но без окружающих delimiters комментария QDoc /*! ... */ . Если вы хотите включить весь файл с указанным именем, не используйте второй аргумент. Если вы хотите включить только часть файла, см. форму с двумя аргументами ниже. Вот пример формы с одним аргументом:

/ *!
    \page corefeatures.html
    \title Core Features

    \include examples/signalandslots.qdocinc
    \include examples/objectmodel.qdocinc
    \include examples/layoutmanagement.qdocinc
* /

QDoc отображает эту страницу как показано здесь.

\include filename snippet-identifier

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

    //! [snippet-id1]

       QDoc commands and text...

//! [snippet-id1]

    //! [snippet-id2]

       More QDoc commands and text...

//! [snippet-id2]

Затем вы можете использовать двухаргументную форму команды:

\input examples/signalandslots.qdocinc snippet-id2
\input examples/objectmodel.qdocinc another-snippet-id

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

Примечание: Идентификаторы фрагментов также работают внутри блоков комментариев к документации (/*! .. */), поэтому нет необходимости использовать отдельный .qdocinc файл. При обработке блока комментариев QDoc удаляет любые //! строки комментариев из сгенерированного вывода.

\meta

Команда \meta в основном используется для включения метаданных в файлы XML DITA. Она также используется для добавления метаданных к документации примеров и при генерации HTML-вывода для указания поддерживающих лиц C++-класса.

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

/ *!
    \class QWidget
    \brief The QWidget class is the base class of all user interface objects.

    \ingroup basicwidgets

    \meta {technology} {User Interface}
    \meta {platform} {macOS 10.6}
    \meta {platform} {MeeGo}
    \meta {audience} {user}
    \meta {audience} {programmer}
    \meta {audience} {designer}
* /

При запуске QDoc для генерации HTML, пример выше не повлияет на сгенерированный вывод, но если вы запустите QDoc для генерации DITA XML, пример сгенерирует следующее:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE cxxClass PUBLIC "-//NOKIA//DTD DITA C++ API Class Reference Type v0.6.0//EN" "dtd/cxxClass.dtd">
<!--qwidget.cpp-->
<cxxClass id="id-9a14268e-6b09-4eee-b940-21a00a0961df">
   <apiName>QWidget</apiName>
   <shortdesc>the QWidget class is the base class of all user interface objects.</shortdesc>
   <prolog>
       <author>Qt Development Frameworks</author>
       <publisher>Qt Project</publisher>
       <copyright>
           <copyryear year="2018"/>
           <copyrholder>Qt Project</copyrholder>
       </copyright>
       <permissions view="all"/>
       <metadata>
           <audience type="designer"/>
           <audience type="programmer"/>
           <audience type="user"/>
           <category>Class reference</category>
           <prodinfo>
               <prodname>Qt Reference Documentation</prodname>
               <vrmlist>
                   <vrm version="4" release="7" modification="3"/>
               </vrmlist>
               <component>QtGui</component>
           </prodinfo>
           <othermeta name="platform" content="MeeGo"/>
           <othermeta name="platform" content="macOS 10.6"/>
           <othermeta name="technology" content="User Interface"/>
       </metadata>
   </prolog>

В примере вывода несколько значений были установлены с помощью значений по умолчанию, полученных из файла конфигурации QDoc. Подробности см. в разделе Генерация DITA XML вывода.

Пример метаданных

Другое применение команды \meta — включение метаданных (тегов) в документацию \example. По умолчанию QDoc генерирует теги примеров на основе заголовка (\title) примера и имени модуля. Эти теги отображаются в режиме «Добро пожаловать» Qt Creator, помогая пользователям ориентироваться в списке примеров.

Дополнительные теги можно создавать с помощью \\meta {tag} {tag1,[tag2,...]}. Например:

/ *!
    \example helloworld
    \title Hello World Example
    \meta {tag} {tutorial,basic}
* /

Это приведет к появлению следующих тегов: tutorial,basic,hello,world. Общие слова, такие как example, игнорируются.

\noautolist

Команда \noautolist указывает, что аннотированный список C++-классов или QML-типов, который автоматически генерируется в конце страницы модуля C++ или QML, должен быть пропущен, потому что классы или типы были перечислены вручную. Эту команду также можно использовать с командой \group, чтобы пропустить список членов группы, когда они перечислены вручную.

Команда должна стоять на отдельной строке. Пример см. в разделе Qt Sensors QML Types. Страница сгенерирована из qtsensors5.qdoc. Там вы найдете комментарий qdoc, содержащий команду \qmlmodule для модуля QtSensors. Тот же комментарий qdoc содержит две \annotated-list команды для перечисления QML-типов в двух отдельных группах. QML-типы были разделены на эти две группы, потому что это более логично, чем перечислять их в едином алфавитном списке. В нижней части комментария \noautolist используется для того, чтобы qdoc не генерировал автоматический аннотированный список.

Эта команда была введена в QDoc 5.6.

С Qt 5.10 эта команда также может быть применена к документации \example, где она вызывает пропускание автоматически сгенерированного списка файлов и изображений, принадлежащих проекту примера.

\omit

Команды \omit и соответствующая \endomit разделяют части документации, которые вы хотите, чтобы QDoc пропустил. Например:

/ *!
    \table
    \row
        \li Basic Widgets
        \li Basic GUI widgets such as buttons, comboboxes
           and scrollbars.

    \omit
    \row
        \li Component Model
        \li Interfaces and helper classes for the Qt
           Component Model.
    \endomit

    \row
        \li Database Classes
        \li Database related classes, e.g. for SQL databases.
    \endtable
* /

QDoc отображает это как:

Основные виджеты Основные виджеты интерфейса, такие как кнопки, комбинационные поля и полосы прокрутки.
Классы баз данных Классы, относящиеся к базам данных, например, для баз данных SQL.

\raw (avoid)

Команда \raw и соответствующая команда \endraw разделяют блок кода языка разметки без изменений.

Примечание: Старайтесь избегать использования этой команды, если это возможно, потому что она генерирует код DITA XML, который вызывает проблемы. Если вы пытаетесь получить особый вид поведения таблиц или списков, попробуйте получить желаемое поведение, используя команды \span и \div в вашей команде \table или \list.

Команда принимает аргумент, определяющий формат кода. В настоящее время поддерживается только формат HTML.

Команда \raw полезна, если вы хотите получить некоторые специальные HTML-эффекты в своей документации.

/ *!
    Qt has some predefined QColor objects.

    \raw HTML
    <style type="text/css" id="colorstyles">
    #color-blue { background-color: #0000ff; color: #ffffff }
    #color-darkBlue { background-color: #000080; color: #ffffff }
    #color-cyan { background-color: #00ffff; color: #000000 }
    </style>

    <p>
    <tt id="color-blue">Blue(#0000ff)</tt>,
    <tt id="color-darkBlue">dark blue(#000080)</tt> and
    <tt id="color-cyan">cyan(#00ffff)</tt>.
</p>
    \endraw
* /

QDoc отображает это как:

Qt имеет некоторые предопределенные объекты QColor.

Синий(#0000ff), темно-синий(#000080) и голубой(#00ffff).

Примечание: Но вы можете добиться того же результата, используя команды qdoc. В этом случае все, что вам нужно сделать, это включить стили цвета в ваш файл style.css. Затем вы можете написать:

\tt {\span {id="color-blue"} {Blue(#0000ff)}},
\tt {\span {id="color-darkBlue"} {dark blue(#000080)}} and
\tt {\span {id="color-cyan"} {cyan(#00ffff)}}.

...что отображается как:

Blue(#0000ff), dark blue(#000080) и cyan(#00ffff).

\unicode

Команда \unicode позволяет вставлять произвольный символ Юникода в документ.

Команда принимает аргумент, определяющий символ как целое число. По умолчанию предполагается основание 10, если не указан префикс '0x' или '0' (для оснований 16 и 8 соответственно). Например:

O G\unicode{0xEA}nio e as Rosas

\unicode 0xC0 table en famille avec 15 \unicode 0x20AC par jour

\unicode 0x3A3 \e{a}\sub{\e{i}}

QDoc отображает это как:

O Gênio e as Rosas

À table en famille avec 15 € par jour

Σ ai

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

Spec-Zone.ru

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