随笔分类 - qt creator源码分析
对qt creator IDE源码的分析
摘要:[TOC] Qt插件基础 我们知道Qt Creator源码是基于插件架构的,那么我们先来介绍下插件基础知识。 相关内容如下: 1. "How to Create Qt Plugins" 2. "\ Defining Plugins" 3. "Echo Plugin Example" 4. "QPlu
阅读全文
摘要:[TOC] Qt中的字符串 Qt中处理字符串最常用的肯定是QString,但是在qt creator源码中出现了大量的QLatin1String。下面我们来介绍下区别。 QLatinString 详细介绍 我们首先来看 "QLatinString" 。类详细介绍如下: QString的许多成员函数都
阅读全文
摘要:[TOC] 统计接口实现 我们知道,插件架构必不可少的是定义接口类,即抽象基类,描述用户需要自定义实现的内容。此外,一般还有一个管理器类,对接口类的所有实现类进行管理,并调用其中的接口进行。源码中有两种方式来获取所有实现类。 一般,我们会把所有实现的列表g_simples,放在管理类中用于管理。 1
阅读全文
摘要:内外命名空间 QtCreator源码中,每一个子项目都有内外两层命名空间,一个是外部的,一个是内部的。 示例如下 其中 1. ExtensionSystem是外部的,其中的类等内容会被EXTENSIONSYSTEM_EXPORT导出,用户使用时可见。 2. ExtensionSystem::Inte
阅读全文
摘要:[TOC] global头文件 插件的本质就是动态链接库,对于库,需要导出符号,供用户导入使用。在qt creator的源码中,存在固定的导入导出模式。 global.h 对于每个库和插件,都有一个xx_global.h头文件,其中xx为库或插件名。示例如下 这就很明显了,XX_LIBRARY作为开
阅读全文
摘要:[TOC] d指针和q指针 我们在 "类成员名称" 和 "使用d指针" 中,已经介绍过了d指针。 这是一个绝妙的技巧,能够在不破坏二进制兼容性的情况下将新的私有数据成员添加到类中。此外,它还能保持头文件的干净,并隐藏具体的实现,加速编译。 简单示例 Foo类中只暴露了接口,具体的实现和数据都隐藏到了
阅读全文
摘要:Qt系统 Qt Creator源码是在Qt对象和框架基础下写的,因此,阅读Qt Creator源码,你首先对Qt得有一定的了解。 "Qt Core" Qt Core特征: "The Meta Object System" "The Property System" "Object Model" "O
阅读全文
摘要:前置基础介绍 在继续我们的源码学习之前,我们在这里花费一章节来学习一些基础的 。 这些编码范式在后面的几乎所有的源码中都会用到。因此,在这里提前进行介绍。 一方面,有助于理解源码,另一方面,也可以用到自己的日常编码中。
阅读全文
摘要:依赖分析图 我们对库和插件的依赖性进行分析,并画图如下,稍微省略了一些插件,画出来太乱了,核心的都在图中了。
阅读全文
摘要:[TOC] 项目文件工作流程 我们在前面已经讨论了所有的项目文件, 1. qtcreator.pro 2. qtcreator.pri 3. qtcreatordata.pri 4. qtcreatorlibrary.pri 5. qtcreatorplugin.pri 6. qtcreatorto
阅读全文
摘要:[TOC] qtcreatortool.pri 上一节我们介绍了qtcreatorplugin.pri,现在我们介绍qtcreatortool.pri。 代码也不多 所有的关键变量及其取值都在前面介绍过了。这里不再赘述。把生成的工具库输出到了构建目录/bin文件夹中。
阅读全文
摘要:[TOC] qtcreatorplugin.pri 上一节我们介绍了qtcreatorlibrary.pri,现在我们介绍qtcreatorplugin.pri,其实插件的本质也是动态库,所以qtcreatorplugin.pri实现的内容和功能与qtcreatorlibrary.pri差不多。 使
阅读全文
摘要:[TOC] qtcreatorlibrary.pri 上一章节,我们介绍了src.pro,这里乘此机会,把src目录下的所有项目文件都介绍一遍。首先为qtcreatorlibrary.pri。 使用实例 为了分析这个文件,我们找个使用该pri的例子,源目录\src\libs\cplusplus\cp
阅读全文
摘要:[TOC] src.pro 前面我们介绍了qtcreator.pro和qtcreator.pri。我们在qtcreator.pro的 可知,第一个子项目为src文件夹。下面我们分析核心源码目录src的项目文件src.pro。 加载qtcreator.pri 第一行为 不做解释,具体见往期文章 "qt
阅读全文
摘要:[TOC] qtcreatordata.pri 此pri文件用于部署在构建Qt Creator时未编译的文件。如果使用影子构建,它将文件复制到构建目录中,同时添加相应的安装目标。 用法:首先定义变量(详细信息如下),然后包含此pri文件。 STATIC_BASE:STATIC_FILES中列出的文件
阅读全文
摘要:[TOC] qtcreator.pri 前面我们介绍了qtcreator.pro,下面我们开始介绍qtcreator.pri,来看看pro中include的pri到底是干什么用的。 注意,许多函数/变量/关键字的含义,某些基础用法,在qtcreator.pro中进行了介绍。 判断重复包含 qtcre
阅读全文
摘要:[TOC] 项目文件分析 第二章节我们介绍了doc/目录帮助文档,下面在介绍源代码之前,我们先来了解下qt creator的项目文件,这对于了解整个源代码的配置、层次架构大有帮助。而且有许多在项目文件中定义的 ,会在源码中被使用到。 项目文件的相关帮助文档,可以在https://doc.qt.io/
阅读全文
摘要:[TOC] qtcreator.pro 首先我们来学习根项目文件 qtcreator.pro 。 包含qtcreator.pri qtcreator.pro第一行为 "include(filename)" 包含filename指定的文件内容到当前项目中。 如果filename被包含,则此函数运行成功
阅读全文
摘要:[TOC] Extending Qt Creator Manual Qt Creator是为Qt开发人员的需求量身定制的跨平台集成开发环境(IDE)。 Qt Creator可以通过多种方式扩展。 例如,Qt Creator架构基于插件加载器,这意味着插件加载器以外的所有功能都在插件中实现。 但是,您
阅读全文
摘要:[TOC] Creating Plugins Qt Creator的核心是一个插件加载程序,加载并运行一组插件,实际上是这些插件提供了您从Qt Creator IDE中了解的功能。甚至应用程序主窗口和菜单都由插件提供的。插件使用不同的方式,供其他插件访问本插件的功能,并允许它们扩展应用程序的某些方面
阅读全文