manifest file 是有qdoc根据example对应的*.qdocconf,*qdoc文件生成的,主要用于在qtcreator 的欢迎(welcome)->示例(examples)中辅助显示内容项。
其文件格式为xml格式。后缀名为.xml。
比如Qt webview examples,他的manifest内容如下:
QtInstallDir\Qt5.12.0\Docs\Qt-5.12.0\qtwebview\examples-manifest.xml
<?xml version="1.0" encoding="UTF-8"?>
<instructionals module="QtWebView">
<examples>
<example name="Qt WebView Examples - Minibrowser" docUrl="qthelp://org.qt-project.qtwebview.5120/qtwebview/qtwebview-minibrowser-example.html" projectPath="webview/minibrowser/minibrowser.pro" imageUrl="qthelp://org.qt-project.qtwebview.5120/qtwebview/images/webview-example.jpg">
<description><![CDATA[Minibrowser example demonstrates how to use the Qt WebView module with Qt Quick.]]></description>
<tags>minibrowser,view,web,webview</tags>
<fileToOpen>webview/minibrowser/main.cpp</fileToOpen>
<fileToOpen mainFile="true">webview/minibrowser/main.qml</fileToOpen>
</example>
</examples>
name 和description、tags分别对应示例中项中的内容。projectPath对应工程文件名,imageUrl对应了该项显示的图片。
点击后打开的工程中main.cpp和main.qml都打开且显示main.qml。这对应了fileopen项。
另外下面的QtInstallDir\Qt5.12.0\Docs\Qt-5.12.0\global\manifest-meta.qdocconf可以辅助生成所有模块的examples-manifest.xml
# Additional meta information (attributes for matched entries, as well as tags)
# to be added to manifest.xml files.
#
# manifestmeta.filters = <filter1>,<filter2>,...
#
# manifestmeta.<filter>.names = <Module1>/<name1>,<Module2>/<name2>,..
# manifestmeta.<filter>.attributes = <attribute1:value1>,<attribute2:value2>,..
# manifestmeta.<filter>.tags = <tag1>,<tag2>,..
#
# <filter>.names specify all the module/name combinations to apply the
# attributes/tags to. You can use simple wildcard matching by appending
# '*' at the end of name.
#
# Note: You cannot use operators (+, =, -) in the names.
#
# Examples: add a 'isHighlighted' attribute for two 'Analog Clock' examples,
# add a 'database' tag for QtSql examples, and a 'qt5' tag for all examples
#
# manifestmeta.filters = highlighted sql global
#
# manifestmeta.highlighted.names = "QtGui/Analog Clock Window Example" \
# "QtWidgets/Analog Clock Example"
# manifestmeta.highlighted.attributes = isHighlighted:true
#
# manifestmeta.sql.names = "QtSql/*"
# manifestmeta.sql.tags = database
#
# manifestmeta.global.names = *
# manifestmeta.global.tags = qt5
manifestmeta.filters = highlighted android thumbnail ios
manifestmeta.highlighted.attributes = isHighlighted:true
manifestmeta.android.names = "QtQuick/Qt Quick Demo - Calqlatr" \
"QtWidgets/Application Chooser Example" \
"QtWidgets/Stickman Example" \
"QtWidgets/Move Blocks Example" \
"QtWidgets/Border Layout Example" \
"QtWidgets/Flow Layout Example" \
"QtWidgets/Dock Widgets Example" \
"QtWidgets/Recent Files Example" \
"QtWidgets/Concentric Circles Example" \
"QtWidgets/Gradients" \
"QtWidgets/Font Sampler Example" \
"QtWidgets/Path Stroking" \
"QtWidgets/Transformations Example" \
"QtWidgets/Syntax Highlighter Example" \
"QtWidgets/Calendar Example" \
"QtWidgets/Analog Clock Example" \
"QtWidgets/Calculator Example" \
"QtWidgets/Mouse Button Tester" \
"QtWidgets/Character Map Example" \
"QtWidgets/Digital Clock Example" \
"QtWidgets/Elided Label Example" \
"QtWidgets/Sliders Example" \
"QtWidgets/Tetrix Example" \
"QtWidgets/Group Box Example" \
"QtWidgets/Undo Framework" \
"QtWidgets/Colliding Mice Example" \
"QtWidgets/Diagram Scene Example" \
"QtWidgets/Elastic Nodes Example" \
"QtWidgets/Weather Anchor Layout Example" \
"QtNetwork/Torrent Example" \
"QtNetwork/Network Chat Example" \
"QtSQL/Master Detail Example" \
"QtLinguist/Arrow Pad Example" \
"QtGui/Raster Window Example" \
"QtGui/Analog Clock Window Example" \
"QtAndroidExtras/Qt Notifier" \
"QtMultimedia/QML Video Shader Effects Example" \
"QtMultimedia/QML Video Example" \
"QtMultimedia/QML Camera Example" \
"QtSVG/Text Object Example" \
"QtQML/Qt Quick Examples - XMLHttpRequest" \
"QtQuick/Qt Quick Particles Examples - *" \
"QtQuick/Qt Quick Examples - Touch Interaction" \
"QtQuick/Scene Graph - Custom Geometry" \
"QtQuick/Scene Graph - Graph" \
"QtQuick/Scene Graph - OpenGL Under QML" \
"QtQuick/Scene Graph - Painted Item" \
"QtQuick/Scene Graph - Rendering FBOs" \
"QtQuick/Scene Graph - Simple Material" \
"QtQuick/Qt Quick Examples - Image Elements" \
"QtQuick/Qt Quick Examples - Key Interaction" \
"QtQuick/Qt Quick Examples - Text" \
"QtQuick/Qt Quick Examples - Animation" \
"QtQuick/Qt Quick Examples - Shader Effects" \
"QtQuick/Qt Quick Examples - Canvas" \
"QtQuick/Qt Quick Examples - MouseArea" \
"QtQuick/Qt Quick Examples - Positioners" \
"QtQuick/Qt Quick Examples - Right to Left" \
"QtWidgets/Interview" \
"QtWidgets/Spreadsheet" \
"QtWidgets/Pixelator Example" \
"QtWidgets/Animated Tiles Example" \
"QtWidgets/Affine Transformations" \
"QtWidgets/Image Composition Example" \
"QtWidgets/Basic Drawing Example" \
"QtWidgets/Vector Deformation" \
"QtWidgets/Painter Paths Example" \
"QtWidgets/Style Sheet Example" \
"QtWidgets/Code Editor Example" \
"QtWidgets/Scribble Example" \
"QtWidgets/Line Edits Example" \
"QtWidgets/Calendar Widget Example" \
"QtWidgets/Completer Example" \
"QtWidgets/I18N Example" \
"QtQML/Extending QML - Grouped Properties Example" \
"QtQML/Extending QML - Methods Example" \
"QtQML/Extending QML - Signal Support Example" \
"QtQML/Extending QML - Attached Properties Example"
manifestmeta.android.tags = android
manifestmeta.ios.names = "QtCore/Contiguous Cache Example" \
"QtCore/Mandelbrot Example" \
"QtCore/Queued Custom Type Example" \
"QtGui/Analog Clock Window Example" \
"QtGui/OpenGL Window Example" \
"QtGui/Raster Window Example" \
"QtNetwork/Loopback Example" \
"QtNetwork/Network Chat Example" \
"QtNetwork/Torrent Example" \
"QtOpenGL/2D Painting Example" \
"QtOpenGL/Textures Example" \
"QtWidgets/Animated Tiles Example" \
"QtWidgets/Application Chooser Example" \
"QtWidgets/Easing Curves Example" \
"QtWidgets/Move Blocks Example" \
"QtWidgets/States Example" \
"QtWidgets/Class Wizard Example" \
"QtWidgets/Find Files Example" \
"QtWidgets/License Wizard Example" \
"QtWidgets/Standard Dialogs Example" \
"QtWidgets/Tab Dialog Example" \
"QtWidgets/Trivial Wizard Example" \
"QtWidgets/Draggable Text Example" \
"QtWidgets/Fridge Magnets Example" \
"QtWidgets/Blur Picker Effect Example" \
"QtWidgets/Fade Message Effect Example" \
"QtWidgets/Lighting Effect Example" \
"QtWidgets/Anchor Layout Example" \
"QtWidgets/Basic Graphics Layouts Example" \
"QtWidgets/40000 Chips" \
"QtWidgets/Colliding Mice Example" \
"QtWidgets/Diagram Scene Example" \
"QtWidgets/Elastic Nodes Example" \
"QtWidgets/Embedded Dialogs" \
"QtWidgets/Graphics View Flow Layout Example" \
"QtWidgets/Simple Anchor Layout Example" \
"QtWidgets/Weather Anchor Layout Example" \
"QtWidgets/Address Book Example" \
"QtWidgets/Basic Sort/Filter Model Example" \
"QtWidgets/Chart Example" \
"QtWidgets/Custom Sort/Filter Model Example" \
"QtWidgets/Dir View Example" \
"QtWidgets/Editable Tree Model Example" \
"QtWidgets/Frozen Column Example" \
"QtWidgets/Interview" \
"QtWidgets/Simple Tree Model Example" \
"QtWidgets/Simple Widget Mapper Example" \
"QtWidgets/Basic Layouts Example" \
"QtWidgets/Border Layout Example" \
"QtWidgets/Flow Layout Example" \
"QtWidgets/Basic Drawing Example" \
"QtWidgets/Concentric Circles Example" \
"QtWidgets/Font Sampler Example" \
"QtWidgets/Gradients" \
"QtWidgets/Image Composition Example" \
"QtWidgets/Painter Paths Example" \
"QtWidgets/Transformations Example" \
"QtWidgets/Calendar Example" \
"QtWidgets/Order Form Example" \
"QtWidgets/Syntax Highlighter Example" \
"QtWidgets/Text Edit" \
"QtWidgets/Traffic Light Example" \
"QtWidgets/Two-way Button Example" \
"QtWidgets/Completer Example" \
"QtWidgets/Custom Completer Example" \
"QtWidgets/Undo Framework" \
"QtWidgets/Analog Clock Example" \
"QtWidgets/Calculator Example" \
"QtWidgets/Calendar Widget Example" \
"QtWidgets/Character Map Example" \
"QtWidgets/Code Editor Example" \
"QtWidgets/Digital Clock Example" \
"QtWidgets/Elided Label Example" \
"QtWidgets/Line Edits Example" \
"QtWidgets/Scribble Example" \
"QtWidgets/Shaped Clock Example" \
"QtWidgets/Sliders Example" \
"QtWidgets/Validators Example" \
"QtWidgets/Window Flags Example" \
"QtWidgets/Wiggly Example" \
"QtQuick/Qt Quick Examples - Animation" \
"QtQuick/Qt Quick Examples - Canvas" \
"QtQuick/Qt Quick Examples - Drag and Drop" \
"QtQuick/Qt Quick Examples - Image Elements" \
"QtQuick/Qt Quick Examples - MouseArea" \
"QtQuick/Qt Quick Examples - Positioners" \
"QtQuick/Qt Quick Examples - Right to Left" \
"QtQuick/Scene Graph - OpenGL Under QML" \
"QtQuick/Qt Quick Examples - Shader Effects" \
"QtQuick/Qt Quick Examples - Text" \
"QtQuick/Qt Quick Examples - Touch Interaction" \
"QtQuick/Qt Quick Examples - Views" \
"QtQuick/Qt Quick Examples - Window and Screen"
manifestmeta.ios.tags = ios
# add a generic thumbnail image to examples that do not have any images in their documentation
manifestmeta.thumbnail.attributes = "imageUrl:qthelp\://org.qt-project.qtdoc.$QT_VERSION_TAG/qtdoc/images/qt-codesample.png"
manifestmeta.thumbnail.names = "QtCore/Contiguous Cache Example" \
"QtCore/Custom Type Example" \
"QtCore/JSON Save Game Example" \
"QtCore/Semaphores Example" \
"QtCore/Wait Conditions Example" \
"QtConcurrent/Map Example" \
"QtConcurrent/QtConcurrent Word Count Example" \
"QtConcurrent/Run Function Example" \
"QtGui/Raster Window Example" \
"QtNetwork/Network Download*" \
"QtWidgets/Dynamic Layouts Example" \
"QtWidgets/Event Transitions Example" \
"QtWidgets/Two-way Button Example" \
"QtWidgets/Validators Example" \
"QtDbus/*" \
"QtHelp/*" \
"QtMultimedia/AudioEngine Example" \
"QtQml/Extending QML*" \
"QtQuick/C++ Extensions: Image Response Provider Example" \
"QtQuick/Qt Quick Examples - Accessibility" \
"QtSensors/Qt Sensors - SensorGesture QML Type example" \
"QtWinExtras/Icon Extractor"
manifest-meta.qdocconf中对name 和isHighligned的描述,可以看到下面QtInstallDir\Qt5.12.0\Docs\Qt-5.12.0\examples-manifest.xml文件中出现:name="Analog Clock Window Example" isHighlighted="true"
<?xml version="1.0" encoding="UTF-8"?>
<instructionals module="QtGui">
<examples>
<example name="Analog Clock Window Example" docUrl="qthelp://org.qt-project.qtgui.5120/qtgui/qtgui-analogclock-example.html" projectPath="gui/analogclock/analogclock.pro" imageUrl="qthelp://org.qt-project.qtgui.5120/qtgui/images/analogclock-window-example.png" isHighlighted="true">
<description><![CDATA[The Analog Clock Window example shows how to draw the contents of a custom window.]]></description>
<tags>analog,android,clock,gui,ios,window</tags>
<fileToOpen mainFile="true">gui/analogclock/main.cpp</fileToOpen>
</example>
<example name="Hello Vulkan Cubes Example" docUrl="qthelp://org.qt-project.qtgui.5120/qtgui/qtgui-hellovulkancubes-example.html" projectPath="gui/hellovulkancubes/hellovulkancubes.pro" imageUrl="qthelp://org.qt-project.qtgui.5120/qtgui/images/hellovulkancubes.png">
<description><![CDATA[Shows the basics of using QVulkanWindow.]]></description>
<tags>cubes,gui,hello,vulkan</tags>
<fileToOpen mainFile="true">gui/hellovulkancubes/main.cpp</fileToOpen>
</example>
<example name="Hello Vulkan Texture Vulkan Example" docUrl="qthelp://org.qt-project.qtgui.5120/qtgui/qtgui-hellovulkantexture-example.html" projectPath="gui/hellovulkantexture/hellovulkantexture.pro" imageUrl="qthelp://org.qt-project.qtgui.5120/qtgui/images/hellovulkantexture.png">
<description><![CDATA[Shows the basics of rendering with textures in a QVulkanWindow.]]></description>
<tags>gui,hello,texture,vulkan</tags>
<fileToOpen>gui/hellovulkantexture/main.cpp</fileToOpen>
<fileToOpen>gui/hellovulkantexture/hellovulkantexture.h</fileToOpen>
<fileToOpen mainFile="true">gui/hellovulkantexture/hellovulkantexture.cpp</fileToOpen>
</example>
<example name="Hello Vulkan Triangle Example" docUrl="qthelp://org.qt-project.qtgui.5120/qtgui/qtgui-hellovulkantriangle-example.html" projectPath="gui/hellovulkantriangle/hellovulkantriangle.pro" imageUrl="qthelp://org.qt-project.qtgui.5120/qtgui/images/hellovulkantriangle.png">
<description><![CDATA[Shows the basics of rendering with QVulkanWindow and the Vulkan API.]]></description>
<tags>gui,hello,triangle,vulkan</tags>
<fileToOpen mainFile="true">gui/hellovulkantriangle/main.cpp</fileToOpen>
</example>
<example name="Hello Vulkan Widget Example" docUrl="qthelp://org.qt-project.qtgui.5120/qtgui/qtgui-hellovulkanwidget-example.html" projectPath="gui/hellovulkanwidget/hellovulkanwidget.pro" imageUrl="qthelp://org.qt-project.qtgui.5120/qtgui/images/hellovulkanwidget.png">
<description><![CDATA[Shows the usage of QVulkanWindow in QWidget applications.]]></description>
<tags>gui,hello,vulkan,widget</tags>
<fileToOpen>gui/hellovulkanwidget/main.cpp</fileToOpen>
<fileToOpen>gui/hellovulkanwidget/hellovulkanwidget.h</fileToOpen>
<fileToOpen mainFile="true">gui/hellovulkanwidget/hellovulkanwidget.cpp</fileToOpen>
</example>
<example name="Hello Vulkan Window Example" docUrl="qthelp://org.qt-project.qtgui.5120/qtgui/qtgui-hellovulkanwindow-example.html" projectPath="gui/hellovulkanwindow/hellovulkanwindow.pro" imageUrl="qthelp://org.qt-project.qtgui.5120/qtgui/images/hellovulkanwindow.png">
<description><![CDATA[Shows the basics of using QVulkanWindow.]]></description>
<tags>gui,hello,vulkan,window</tags>
<fileToOpen>gui/hellovulkanwindow/main.cpp</fileToOpen>
<fileToOpen>gui/hellovulkanwindow/hellovulkanwindow.h</fileToOpen>
<fileToOpen mainFile="true">gui/hellovulkanwindow/hellovulkanwindow.cpp</fileToOpen>
</example>
<example name="OpenGL Window Example" docUrl="qthelp://org.qt-project.qtgui.5120/qtgui/qtgui-openglwindow-example.html" projectPath="gui/openglwindow/openglwindow.pro" imageUrl="qthelp://org.qt-project.qtgui.5120/qtgui/images/openglwindow-example.png">
<description><![CDATA[This example shows how to create a minimal QWindow based application for the purpose of using OpenGL.]]></description>
<tags>gui,ios,opengl,window</tags>
<fileToOpen>gui/openglwindow/main.cpp</fileToOpen>
<fileToOpen>gui/openglwindow/openglwindow.h</fileToOpen>
<fileToOpen mainFile="true">gui/openglwindow/openglwindow.cpp</fileToOpen>
</example>
<example name="Raster Window Example" docUrl="qthelp://org.qt-project.qtgui.5120/qtgui/qtgui-rasterwindow-example.html" projectPath="gui/rasterwindow/rasterwindow.pro" imageUrl="qthelp://org.qt-project.qtdoc.5120/qtdoc/images/qt-codesample.png">
<description><![CDATA[This example shows how to create a minimal QWindow based application using QPainter for rendering.]]></description>
<tags>android,gui,ios,raster,window</tags>
<fileToOpen>gui/rasterwindow/main.cpp</fileToOpen>
<fileToOpen>gui/rasterwindow/rasterwindow.h</fileToOpen>
<fileToOpen mainFile="true">gui/rasterwindow/rasterwindow.cpp</fileToOpen>
</example>
</examples>
</instructionals>