本页内容

内联代码

以下命令用于以无格式方式呈现源代码。源代码从新行开始,并在代码中呈现。

注意:尽管 这些命令大多用于显示 C++ 代码,但 \snippet 和 \codeline 命令比其他命令更受推荐。这些命令允许在文档中用其他 Qt 语言绑定对应的等效代码片段替换 C++ 代码片段。

\code

\code 和\endcode 命令用于包裹一段源代码片段。

注意: \c 命令可用于句子中的短代码片段。\code 命令则适用于较长的代码片段。它会将代码原样渲染在单独的段落中,并封装在 HTML <pre> 元素内,同时解析所包含的代码片段,为代码中所有已知类型创建链接。

若要记录命令行说明、shell 脚本或任何 QDoc 无法识别的 Qt 语言内容,请改用 \badcode 代替。

在处理\code 命令时,QDoc 会先移除/*! ...*/ 注释中原代码块通常采用的所有缩进,然后才添加标准缩进。

注意:这 不适用于使用 \quotefromfile 或 \quotefile 命令引用的外部代码。

/*!
    \code
        #include <QApplication>
        #include <QPushButton>

        int main(int argc, char *argv[])
        {
            ...
        }
    \endcode
*/

在\code 中,其他QDoc命令均被禁用……\endcode ,且特殊字符'\'会被接受并像其余代码一样渲染,除非其后紧跟一个数字且已向\code 传递了参数。

高亮显示和自动链接

\code 命令会尝试根据语言配置变量中的定义,将内容解析为特定语言的代码。这可实现代码高亮,并为代码中检测到的类型生成自动链接。

自 QDoc 6.4 版本起,有一项例外情况:当在 QML专用主题中使用\code 命令时,QDoc 会首先尝试将代码识别为 QML;对于其他主题,则以语言配置变量为准。若要明确将代码片段标记为 QML,请改用 \qml 命令。

从 6.11 版本开始,可以在与\code 命令位于同一行的位置,将语言作为可选的、不区分大小写的参数进行指定。一旦指定,该语言将覆盖默认语言以及上述任何其他特定于语言的行为。QDoc 还定义了text 语言,以便代码块能够不带任何标记或高亮显示。

例如:

\code [text]
    # This is an example of unmarked code.
    implement MyModule;
    include "sys.m";
    sys: Sys;
\endcode

当引用 QDoc 无法进行标记的语言时,此功能非常有用。

此外,对于 QDoc 无法识别的代码块,您还可以通过将该语言添加到codelanguages配置变量所管理的列表中,来为其指定语言。这样,生成的 HTML 中就会包含元数据,其他工具可以利用这些元数据对代码进行语法高亮显示。

代码片段参数

自 QDoc 5.12 版本起,\code 命令也支持可选参数。这些参数可用于将简单的字符串插入代码片段中。若要将字符串插入代码片段的特定位置,请在字符串前添加反斜杠,后跟一个数字(1..8)。 这些数字对应于参数列表的顺序,其中参数由空格分隔,并位于任何可选的语言参数之后。

例如:

/*!
    \code * hello
    /\1 \2 \1/
    \endcode
*/

对于上面的代码片段,QDoc 会将单词hello渲染为 C 风格注释中的内容。

包含来自外部文件的代码

要包含来自外部文件的代码片段,请使用 \snippet 和 \codeline 命令。

另请参阅 \c, \qml, \badcode, \quotefromfile,以及语言。

\badcode

与 \code,\badcode 和\endcode 命令将内容包裹起来,使其以原样形式呈现在单独的段落中,但不会进行解析或自动创建链接。相反,该内容将被视为纯文本。

在编写命令行说明、shell 脚本或任何其他非 Qt 语言的内容时,请使用此命令代替 `\code `,但这些内容仍应采用与 `\code ` 段落类似的样式。

与\code 类似,\badcode 也支持可选参数。

\qml

\qml 和\endqml 命令用于包裹一段 QML 源代码片段。请使用这些命令来正确突出显示 QML 代码片段的语法。被包裹的代码片段必须完整,如同一个有效的 .qml 文件一样。如果代码片段不完整,QDoc 将发出警告并忽略该片段。

/*!
    \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
*/

与 \code 命令一样,\qml 也支持可选参数。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.