Разное
Эти команды предоставляют различные функции, связанные с визуальным отображением документации и процессом ее генерации.
\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.
\qtcmakepackage
Используйте команду \qtcmakepackage, чтобы добавить информацию о пакете CMake к классам и именам пространств. Эта информация будет отображаться в таблице в верхней части страницы документации класса или пространства имен. Например:
/ *!
\namespace Foo
\inheaderfile Bar
\qtcmakepackage Baz
\brief A namespace.
[...]
* / QDoc выведет это как
Пространство имен Foo
Пространство имен. Подробнее...
| Заголовок: | #include <Bar> |
| CMake: | find_package(Qt6 COMPONENTS Baz REQUIRED) |
| 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 function index так:
/ *!
\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 использует его для генерации страницы overviews следующим образом:
/ *!
\page overviews.html
\title All Overviews and HOWTOs
\generatelist overviews
* /
attributions
Аргумент attributions используется для того, чтобы сообщить QDoc о генерации списка атрибутов в документации.
related
Аргумент related используется в сочетании с командами \group и \ingroup для перечисления всех обзоров, относящихся к указанной группе. Например, страница для страницы Programming with 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 или exampledirs. Он может быть любым исходным файлом, анализируемым QDoc (или даже тем же, где используется команда \include), или любым другим текстовым файлом. Для хранения фрагментов в отдельном файле, который не должен анализироваться QDoc, используйте расширение файла, которое не указано в sources.fileextensions; например, .qdocinc.
Команда может иметь один или два аргумента. Первый аргумент всегда является именем файла. Содержимое файла должно быть вводом QDoc, то есть последовательностью команд QDoc и текста, но без заключительных разделителей комментариев QDoc /*! ... */. Если вы хотите включить весь файл с указанным именем, не используйте второй аргумент. Если вы хотите включить только часть файла, см. раздел двухстрочный формат ниже. Вот пример однострочного формата:
/ *!
\page corefeatures.html
\title Core Features
\include examples/signalandslots.qdocinc
\include examples/objectmodel.qdocinc
\include examples/layoutmanagement.qdocinc
* / QDoc отображает эту страницу как показано здесь.
| Основные виджеты | Основные виджеты пользовательского интерфейса, такие как кнопки, комбинированные поля и полосы прокрутки. |
| Классы базы данных | Классы, связанные с базой данных, например, для баз данных SQL. |
\raw (avoid)
Команда \raw и соответствующая ей команда \endraw размечают блок исходного кода языка разметки.
Примечание: По возможности избегайте использования этой команды. Если вы пытаетесь сгенерировать специальное поведение таблицы или списка, попробуйте получить желаемое поведение с помощью команд \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-6.2/12-0-qdoc-commands-miscellaneous.html