杂项
这些命令提供了与文档的视觉外观和生成过程相关的各种功能。
\annotatedlist
\annotatedlist 命令扩展为一个列表,列出组中的每个成员,每个成员都附有其简短文本。以下是从 Qt 参考文档中的一个示例
/*! ... \section1 Drag and Drop Classes These classes deal with drag and drop and the necessary mime type encoding and decoding. \annotatedlist draganddrop */
这会生成draganddrop组中所有 C++ 类和/或 QML 类型的列表。在draganddrop组中的 C++ 类或 QML 类型将具有 \ingroup draganddrop 在其 \class 或 \qmltype 注释中。
\qtcmakepackage
使用 \qtcmakepackage 命令向类和命名空间添加 CMake 包信息。然后,此信息将显示在类或命名空间文档页面的顶部表格中。例如
/*! \namespace Foo \inheaderfile Bar \qtcmakepackage Baz \brief A namespace. ... */
QDoc 将输出如下
Foo 命名空间
一个命名空间。更多...
头文件 #include <Bar> CMake find_package(Qt6 REQUIRED COMPONENTS Baz)
\generatelist
\generatelist 命令扩展为一个列表,列出使用 \ingroup 命令分组或匹配以下列表中任一参数的文档实体。以下是从 Qt 参考文档中的一个示例
/*! \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 */
这会生成所有类页面。此命令接受以下参数
<group-name>
只有一个参数是组名时,QDoc 列出了使用 \ingroup <group-name>
命令的所有实体。
annotatedclasses
annotatedclasses
参数提供了一个包含所有类名称和每个类的描述的表格。每个类名称都是对类参考文档的链接。例如
使用 \class 命令对 C++ 类进行文档说明。类的注释取自类注释的 \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} ... */
指定模块的每个成员类必须在其\class注释中使用\inmodule命令进行标记。
qmltypesbymodule
与classesbymodule
参数类似,但用于列出由第二个参数指定的QML模块中的QML类型(不包括QML值类型)。
注意:支持此参数是在QDoc 5.6中引入的。
qmlvaluetypesbymodule
与qmltypesbymodule
参数类似,但列出的是QML值类型。
注意:支持此参数是在QDoc 6.7中引入的。
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...命令内部,但有两个备选方案时很有用。
\include
\include命令将指定的第一个参数指定的文件的所有部分或部分发送到QDoc输入流,作为QDoc注释片段进行处理。
在需要将某些命令或文本片段用于文档中的多个地方时,该命令很有用。在任何需要将片段插入文档的地方使用\include命令。要包含的片段所在的文件必须位于sourcedirs或exampledirs QDoc配置变量列出的路径下。它可以是对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将此页面呈现为 所示形式。
\include filename snippet-identifier
对于每个您希望在文档的多个位置使用QDoc包含片段的.qdocinc
文件,都创建一个单独的文件是浪费时间,特别是如果您还必须在这些文件中的每一个都放置版权/许可通知。如果您要包含的片段有多个,可以将它们全部放入一个文件中,并在每个片段周围使用
//! [snippet-id1] QDoc commands and text... //! [snippet-id1] //! [snippet-id2] More QDoc commands and text... //! [snippet-id2]
然后,您可以使用命令的双参数形式
\include examples/signalandslots.qdocinc snippet-id2 \include examples/objectmodel.qdocinc another-snippet-id
在具有与第二个参数相同名称的两个标签之间发现的QDoc命令和文本的序列被发送到QDoc输入流。您甚至可以有嵌套的片段。
注意:片段标识符也在文档注释(/*! .. */)块内工作,因此不需要使用单独的.qdocinc
文件。处理注释块时,QDoc会从生成的输出中删除任何.every snippet ID
注释行。
额外参数
从QDoc 6.3开始,传递给\include命令的任何额外参数都用于将字符串注入到包含的内容中。要将字符串注入到内容中的特定位置,请添加一个反斜杠后跟一个数字(1..9)。数字与参数列表的顺序相对应。用括号将参数括起来,以确保QDoc按您期望的方式渲染整个参数,包括可能的空白字符。
重要:每个额外的参数(包括片段ID)都必须用括号括起来。如果要包含整个文件,请使用空片段ID:{}
。
例如,一个名为includes.qdocinc
的文件中的以下片段
//! [usage] To enable \e{\1}, select \uicontrol {\2} > \uicontrol Enable. //! [usage]
然后,以下\include行
\include includes.qdocinc {usage} {detailed output} {Verbose}
渲染为
要启用详细输出,请选择“详细输出” > “启用”。
\meta
\meta命令用于向文档添加元数据。该命令有两个参数:第一个参数是元数据属性的名称,第二个参数是该属性的值。每个参数都应用括号括起来,如本例所示
/*! \example demos/coffee \title Coffee Machine \brief A Qt Quick application with a state-based custom user interface. \meta {tags} {quick,embedded,states,touch} \meta {category} {Application Examples} */
有许多元数据属性具有特定用途
示例元数据
\meta命令的另一种用途是在\example文档中包含元数据(标记)。默认情况下,QDoc根据示例的\title和模块名称生成示例标记。这些标记在Qt Creator的欢迎模式中显示,有助于用户导航示例列表。
可以使用\meta {tag} {tag1}
或\meta {tags} {tag1,[tag2,...]}
创建更多标签。例如
/*! \example helloworld \title Hello World Example \meta {tags} {tutorial,basic} */
这将生成以下标签: tutorial,basic,hello,world。常见的单词,如example,会被忽略。
排除示例
标记一个示例为broken将使其排除在生成的清单文件之外,从而有效地将其从Qt Creator的欢迎模式中删除。
\meta {tag} {broken}
示例安装路径
\meta命令与参数installpath
结合使用,指定已安装示例的位置。此值将覆盖使用examplesinstallpath
配置变量设置的值。
/*! \example helloworld \title Hello World Example \meta {installpath} {tutorials} */
另请参阅examplesinstallpath。
状态
\meta命令的status
参数为\class或\qmltype添加自定义状态描述。此描述将随后出现在类型参考页面顶部的一个表格中。
/*! \class QNativeInterface::QAndroidApplication \meta {status} {Android-specific} */
另请参阅与状态相关的命令。
\noautolist
\noautolist命令表示省略在C++或QML模块页面底部自动生成的注解列表中的C++类或QML类型,因为这些类或类型已被手动列出。此命令还可以与\group命令结合使用,当组成员被手动列出时,省略组成员列表。
该命令必须独立一行。请参见Qt Quick Controls QML类型示例。页面由qtquickcontrols2-qmlmodule.qdoc
生成。在那里您将找到一个包含QtQuick.Controls模块的\qmlmodule命令的QDoc注释。相同的注释包含一个\noautolist命令以禁用自动列表生成,并使用\generatelist在文档的特定部分中列出QML类型。
此命令自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 */
\raw(避免使用!)
\raw命令和对应的\endraw命令定义了一块原始标记语言代码。
该命令带有一个指定代码格式的参数。
当用户指定生成格式时,QDoc才生成给定的代码。
例如,"\raw HTML"在QDoc生成HTML文档时才会生成代码。
注意:您通常可以通过使用QDoc命令来完成 intend 的目的,同时减少了出错或内容无法维护的机会。
\sincelist
\sincelist命令扩展为指定版本中对文档API的新的详细分解。例如用法
/*! \page newclasses67.html \title New Classes and Functions in 6.7 \brief A comprehensive list of new classes and functions in 6.7. \sincelist 6.7 */
\sincelist带有一个参数,一个版本字符串。生成的输出包含所有标记有\since命令或匹配版本字符串的since子句的功能。
\unicode
\unicode 命令允许您在文档中插入任意 Unicode 字符。
该命令需要一个指定字符的整数参数。默认情况下,假定基数为 10,除非指定了 '0x' 或 '0' 前缀(分别表示 16 和 8 进制)。
© 2024 The Qt Company Ltd. 内含的文档贡献均为其各自所有者的版权。提供的文档依据自由软件基金会发布的GNU 自由文档许可证 1.3 版本的条款授予许可。Qt 及其相应标志是 The Qt Company Ltd. 在芬兰和其他国家/地区的商标。所有其他商标均为其各自所有者的财产。