Включение кода в строку
Следующие команды используются для рендеринга исходного кода без форматирования. Исходный код начинается с новой строки, отображается в коде.
Примечание: Хотя большинство этих команд предназначены для рендеринга кода C++, команды \snippet и \codeline предпочтительнее других. Эти команды позволяют подставлять эквивалентные фрагменты кода для других языковых библиотек Qt в документацию вместо фрагментов кода C++.
\code
Команды \code и \endcode заключают в себе фрагмент исходного кода.
Примечание: Команда \c может использоваться для коротких фрагментов кода в предложении. Команда \code предназначена для более длинных фрагментов кода. Она отображает код дословно в отдельном абзаце в элементе html <pre> и анализирует заключённый фрагмент, создавая ссылки на любые известные типы в коде.
Для документирования командной строки, сценариев оболочки или любого содержимого, не относящегося к языку Qt, распознаваемому QDoc, используйте \badcode вместо этого.
При обработке любой из команд \code, \newcode или \oldcode QDoc удаляет все отступы, которые являются общими для фрагментов кода verbatim внутри /*! ... */ комментария, прежде чем добавить стандартные отступы.
Примечание: Это не относится к внешним фрагментам кода, использующим команду \quotefromfile или \quotefile.
/ *!
\code
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[])
{
...
}
\ endcode
* / QDoc отображает это как:
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[])
{
...
} Другие команды QDoc отключены в блоке \code... \endcode, и специальный символ '\' принимается и отображается как любой другой код, если за ним не следует цифра, и параметры не были переданы команде \code.
Параметры фрагментов кода
С версии QDoc 5.12 команда \code также принимает необязательные параметры. Параметры полезны для вставки простых строк в фрагмент кода. Чтобы вставить строку в определённое место фрагмента, добавьте обратную косую черту, за которой следует цифра (1..8). Цифры соответствуют порядку в списке аргументов, где аргументы разделены пробелами.
Например:
/ *! \code * hello /\1 \2 \1/ \ endcode * /
Для приведенного выше фрагмента QDoc отобразит слово hello, заключённое в комментарии C-стиля.
Включение кода из внешних файлов
Для включения фрагментов кода из внешнего файла используйте команды \snippet и \codeline.
См. также \c, \badcode, \quotefromfile, \newcode и \oldcode.
\badcode
Аналогично команде \code, команды \badcode и \endcode заключают в себе содержимое, которое отображается дословно в отдельном абзаце, но никакой обработки или автоматической генерации ссылок не выполняется. Вместо этого содержимое обрабатывается как обычный текст.
Замените \code этой командой при документировании командной строки, сценариев оболочки или любого другого содержимого, не относящегося к языку Qt, но которое должно быть стилизовано аналогично абзацу \code.
Как и \code, \badcode также принимает необязательные параметры.
\newcode
Команды \newcode, \oldcode и \endcode позволяют показать, как перенести фрагмент кода в новую версию API.
Команда \newcode и её «сопутник» \oldcode — это удобное сочетание команд \code: это сочетание предоставляет текст, относящий фрагменты кода друг к другу.
Команда \newcode требует предшествующей команды \oldcode.
Как и команда \code, команда \newcode отображает свой код на новой строке в документации с использованием моноширинного шрифта и стандартного отступа.
/ *!
\oldcode
if (printer->setup(parent))
...
\newcode
QPrintDialog dialog(printer, parent);
if (dialog.exec())
...
\ endcode
* / QDoc отображает это как:
Например, если у вас есть код, подобный
if (printer->setup(parent)) ...вы можете переписать его как
QPrintDialog dialog(printer, parent); if (dialog.exec()) ...
Другие команды QDoc отключены внутри \oldcode ... \endcode, и символ '\' не нужно экранировать.
\oldcode
Команда \oldcode требует соответствующей команды \newcode; в противном случае QDoc не сможет обработать команду и выведет предупреждение.
См. также \newcode.
\qml
Команды \qml и \endqml заключают в себе фрагмент исходного кода QML.
/ *!
\qml
import QtQuick 2.0
Row {
Rectangle {
width: 100; height: 100
color: "blue"
transform: Translate { y: 20 }
}
Rectangle {
width: 100; height: 100
color: "red"
transform: Translate { y: -20 }
}
}
\endqml
* / QDoc отображает это как:
import QtQuick 2.0
Row {
Rectangle {
width: 100; height: 100
color: "blue"
transform: Translate { y: 20 }
}
Rectangle {
width: 100; height: 100
color: "red"
transform: Translate { y: -20 }
}
} Как и команда \code, \qml принимает необязательные параметры.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/06-qdoc-commands-includecodeinline.html