qt creator源码全方面分析(2)

目录

  • doc文件夹

    • 帮助文档

    • 配置文件
    • doc文件夹

      对于bin和dist文件夹这里就不做过多的介绍了。我们首先来重点关注doc文件夹。对于理解源码,帮助文档总是能起到非常有效的作用。其实,我们在第一章《目录介绍》中已经对doc文件夹进行了一个大概的介绍。

      帮助文档

      帮助文档的来源有两个组成部分:

      1. 源代码中的注释
      2. qdoc文件

      两者都采用一定约束规范的编写形式,来添加注释和说明信息。示例如下:

      /*!
          \class XXX
          \brief The brief description of the class XXX
          \details The details description of the clss XXX
      */

      qdoc工具

      qt使用qdoc.exe软件来制作帮助文档。软件需要qdocconf配置文件,该文件描述了文档来源和相关配置参数等。

      对于qdoc.exe怎么使用,这里就不再展开了,请自行查阅相关资料。示例如下:

      ...\bin\qdoc.exe --outputdir ./my-html-doc-qtcreator qtcreator.qdocconf

      doxygen工具

      这里我们讨论一下doc\doxygen文件夹,里面只有一个Doxyfile文件

      这是文件夹干什么用的呢?不知道大家日常看大牛的开源代码时,是否时常感叹为什么别人的代码写的那么的优雅,大段大段的注释那么有结构,官方帮助文档那么的清晰完整!!

      想必大家都明白了吧,他们采用的就是doxygen工具,该工具从相关的代码源文件中生成文档,包括html,pdf,unix man page等。只要你按照doxygen的代码注释规范来编写注释,即可使用该工具生成文档。

      这里doxyfile的作用和qdocconf是一样的,就是配置文件。具体内容请参考官网

      它支持qt,java等多种风格,qt风格如下,这跟qdoc中使用的差不了多少:

      //!  A test class.
      /*!
        A more elaborate class description.
      */
      class QTstyle_Test
      {
        public:
          //! An enum.
          /*! More detailed enum description. */
          enum TEnum {
                       TVal1, /*!< Enum value TVal1. */
                       TVal2, /*!< Enum value TVal2. */
                       TVal3  /*!< Enum value TVal3. */
                     }
               //! Enum pointer.
               /*! Details. */
               *enumPtr,
               //! Enum variable.
               /*! Details. */
               enumVar;  
      
          //! A constructor.
          /*!
            A more elaborate description of the constructor.
          */
          QTstyle_Test();
      
          //! A destructor.
          /*!
            A more elaborate description of the destructor.
          */
         ~QTstyle_Test();
      
          //! A normal member taking two arguments and returning an integer value.
          /*!
            \param a an integer argument.
            \param s a constant character pointer.
            \return The test results
            \sa QTstyle_Test(), ~QTstyle_Test(), testMeToo() and publicVar()
          */
          int testMe(int a,const char *s);
      
          //! A pure virtual member.
          /*!
            \sa testMe()
            \param c1 the first argument.
            \param c2 the second argument.
          */
          virtual void testMeToo(char c1,char c2) = 0;
      
          //! A public variable.
          /*!
            Details.
          */
          int publicVar;
      
          //! A function variable.
          /*!
            Details.
          */
          int (*handler)(int a,int b);
      };

      生成的html文档惊鸿一瞥:

      配置文件

      qtcreator编译时,会自动生成帮助文档。如果你安装了qt,可以在QtTargetPath1\Tools\QtCreator\share\doc\qtcreator文件夹下发现这些帮助文档。

      doc文件夹中最核心的两个配置文件为config子文件夹下的qtcreator-project.qdocconf和qtcreator-developer.qdocconf。

      qtcreator-project.qdocconf

      该配置文件生成的html帮助手册,用于介绍qtcreator软件如何使用的。我们可以在qtcreator软件的帮助模式中看到的。html文件在上述安装路径的qtcreator子文件夹中。

      qtcreator-project.qdocconf具体如下:

      # 设置源路径
      headerdirs =
      sourcedirs = ../src
      imagedirs = ../images             ...
      ...
      # 包含通用配置
      include(macros.qdocconf)
      include(qt-cpp-ignore.qdocconf)
      include(qt-defines.qdocconf)
      
      # 过滤文件尾缀
      sources.fileextensions         = "*.qdoc"
      
      # 设置属性
      qhp.projects            = QtCreator
      qhp.QtCreator.file             = qtcreator.qhp
      qhp.QtCreator.namespace        = org.qt-project.qtcreator.$QTC_VERSION_TAG
      qhp.QtCreator.virtualFolder    = doc
      # 标题
      qhp.QtCreator.indexTitle       = Qt Creator Manual $QTC_VERSION
      ...

      下面是软件帮助模式的截图。

      qtcreator-developer.qdocconf

      该配置文件生成的html帮助手册,用于介绍如何扩展qtcreator软件的功能,以及扩展会用到的相关类。html文件在上述安装路径的qtcreator-dev子文件夹中。

      qtcreator-dev.qdocconf具体如下:

      # 设置源路径
      headerdirs              = .                           ../api                           ../../src/libs/aggregation                           ...
      
      sourcedirs              = .                           ../api                           ../../src/libs/aggregation                           ...
      ...
      # 过滤文件尾缀
      headers.fileextensions  = "*.h"
      sources.fileextensions  = "*.cpp *.qdoc"
      ...
      # 包含通用配置
      include(macros.qdocconf)
      include(qt-cpp-ignore.qdocconf)
      include(qt-defines.qdocconf)
      
      # 设置属性
      qhp.projects            = QtCreatorDev
      qhp.QtCreatorDev.file             = qtcreator-dev.qhp
      qhp.QtCreatorDev.namespace        = org.qt-project.qtcreator.developer.$QTC_VERSION_TAG
      qhp.QtCreatorDev.virtualFolder    = doc
      # 标题
      qhp.QtCreatorDev.indexTitle       = Extending Qt Creator Manual
      ...

      下面是html帮助手册的截图。

      下面开始,我们对生成的Extending Qt Creator Manual帮助文档进行学习。

原文地址:https://www.cnblogs.com/uwiyrwiufsjc/p/12426467.html

时间: 2024-10-02 07:34:50

qt creator源码全方面分析(2)的相关文章

qt creator源码全方面分析(2-10-5)

目录 The Plugin Manager, the Object Pool, and Registered Objects 插件管理器 对象池和已注册对象 The Plugin Manager, the Object Pool, and Registered Objects 通常,插件不需要直接访问插件管理器. 交互主要间接的通过ExtensionSystem::IPlugin接口. 在某些情况下,则必须使用插件管理器API. 插件需要访问插件管理器的对象池,以扩展Qt Creator的某些方

qt creator源码全方面分析(2-0)

目录 Extending Qt Creator Manual 生成领域特定的代码和模板 代码片段 文件和项目模板 自定义向导 支持其他文件类型 MIME类型 高亮和缩进 自定义文本编辑器 其他自定义编辑器 运行外部工具 简单的外部工具 复杂的外部工具 所有主题 Extending Qt Creator Manual Qt Creator是为Qt开发人员的需求量身定制的跨平台集成开发环境(IDE). Qt Creator可以通过多种方式扩展. 例如,Qt Creator架构基于插件加载器,这意味着

qt creator源码全方面分析(2-10)

目录 Creating Plugins Creating Plugins Qt Creator的核心是一个插件加载程序,加载并运行一组插件,实际上是这些插件提供了您从Qt Creator IDE中了解的功能.甚至应用程序主窗口和菜单都由插件提供的.插件使用不同的方式,供其他插件访问本插件的功能,并允许它们扩展应用程序的某些方面. 例如,Core插件是Qt Creator完全运行所必须具备的非常基本的插件,它提供了主窗口,以及相关API,用于添加菜单项,模式,编辑器类型,导航面板和许多其他内容.

qt creator源码全方面分析(3-6)

目录 qtcreatorplugin.pri 使用实例 上半部 下半部 结果 qtcreatorplugin.pri 上一节我们介绍了qtcreatorlibrary.pri,现在我们介绍qtcreatorplugin.pri,其实插件的本质也是动态库,所以qtcreatorplugin.pri实现的内容和功能与qtcreatorlibrary.pri差不多. 使用实例 和上一节一样,为了分析这个文件,我们也再找个使用该pri的例子,源目录\src\plugins\cppeditor\cpped

qt creator源码全方面分析(3-8)

目录 项目文件工作流程 多层目录模式 依赖解析模式 包含,链接和输出 包含 链接 输出 构建目录架构 项目文件工作流程 我们在前面已经讨论了所有的项目文件, qtcreator.pro qtcreator.pri qtcreatordata.pri qtcreatorlibrary.pri qtcreatorplugin.pri qtcreatortool.pri 下面我们再从头到尾来捋一遍. 多层目录模式 我们可以看到,所有的*.pro文件中,除了最底层的子项目.都采用TEMPLATE和SUB

qt creator源码全方面分析(4)

前置基础介绍 在继续我们的源码学习之前,我们在这里花费一章节来学习一些基础的编码范式. 这些编码范式在后面的几乎所有的源码中都会用到.因此,在这里提前进行介绍. 一方面,有助于理解源码,另一方面,也可以用到自己的日常编码中. 原创造福大家,共享改变世界 献出一片爱心,温暖作者心灵 qt creator源码全方面分析(4) 原文地址:https://www.cnblogs.com/codeForFamily/p/qt-creator-ide-source-learn-4.html

qt creator源码全方面分析(2-3)

目录 External Tool Specification Files 文件名 位置 文件格式 主要标签 描述标签 可执行规范标签 示例 External Tool Specification Files 外部工具规范文件描述了可以从工具>外部菜单运行的工具. 它指定工具的名称,要运行的可执行文件,可选参数以及如何处理工具的输出. 文件名 <yourtoolname>.xml 位置 用户指定工具位于Mac和Linux上的$HOME/.config/QtProject/qtcreator

qt creator源码全方面分析(2-2)

目录 Common Extension Tasks Common Extension Tasks 本节总结了可用于将UI组件添加到Qt Creator的API函数. 任务 详细 API 添加菜单或菜单项 你可以扩展现有菜单或者创建一个新的菜单 Core::ActionManager, Core::Command 添加可配置的键盘快捷方式 注册快捷方式,使用户可以在通用快捷方式设置对话框中对其进行配置 Core::ActionManager, Core::Command 添加一个模式 模式对应于完

qt creator源码全方面分析(2-10-2)

目录 Creating Your First Plugin 创建一个插件项目 构建并运行插件 文件结构 qmake项目 插件元数据模板 插件类 头文件 源文件 Creating Your First Plugin 本节介绍,如何使用Qt Creator提供的插件模板,来创建Qt Creator插件,并获取对插件的组成和结构的第一印象. 创建一个插件项目 Qt Creator附带了一个创建Qt Creator插件的向导,该向导会为您创建一个可运行的最小插件.我们强烈建议您使用两个不同的Qt Cre