QtCreator源码分析(一)——QtCreator源码简介

QtCreator源码分析(一)——QtCreator源码简介

一、QtCreator简介

QtCreator是设计精巧的插件式系统,QtCreator的核心是一个插件管理器,其所有功能都是使用插件完成。在启动时,QtCreator会首先加载一个名为coreplugin的插件,coreplugin插件提供了Qt Creator最基本的功能和扩展点,其余的插件都是直接或间接依赖于coreplugin插件提供的机制,一步步扩充QtCreator的功能,最终将其变成一个功能完整的IDE。
针对QtCreator的插件机制设计,QtCreator源码分析会将关注重点放在插件管理器的实现、coreplugin的实现上面。QtCreator完全基于qmake的复杂开发模式,需要学会如何使用qmake管理一个相当复杂的项目(QtCreator近5000个文件),如何开发自定义插件管理器,如何使用插件扩展定制系统等。

二、QtCreator源码简介

1、QtCreator源码目录简介

QtCreator-2.8.1包含5000多个文件,代码行数超过了110万行。
源码目录如下:
![]
bin: 生成Linux平台shell脚本。
dist: 安装文件配置信息和版本更新记录。
doc: 生成doxygen文档的配置文件。
lib:Qt组件相关的QML文件
qbs:QBS 配置文件。QBS,即?Qt Build Suite,是一种跨平台的编译工具,目的是将高层的项目描述(使用类似QML的语言)转换成底层的编译描述(供?make 等工具使用的信息)。它可以简化多平台的编译过程。QBS与qmake类似,区别在于前者适用于任意项目,而后者一般仅供Qt项目使用。在阅读代码时将关注 qmake,不会深入研究QBS的使用。
scripts: QtCreator使用的perl以及python等脚本。
share: 源代码中所需要的一些非代码共享文件,例如代码模板等。
src: QtCreator源代码文件。
tests:?QtCreator测试代码。
HACKING: QtCreator编码规范。
LICENSE.LGPL: LGPL协议。
qtcreator.pri: QtCreator项目需要使用的通用配置,一般会被include到大部分?pro文件。
qtcreator.pro: QtCreator的qmake项目文件。
qtcreator.qbs: ?Qt Creator 的 QBS 项目文件。
README: 有关如何编译QtCreator等相关事宜的一些说明。
.gitignore: git忽略文件配置。
.gitmodules:git 子模块配置

2、QtCreator源码编译

Linux环境下直接使用QtCreator-2.8.1+Qt4.8.6编译
运行结果如下:

三、QtCreator简介

QtCreator主要由主窗口区、菜单栏、模式选择器、常用按钮、定位器、输出面板等组成。

1、QtCreator菜单栏

QtCreator菜单栏包含文件、编辑、构建、调试、分析、工具、窗体、帮助八个菜单选项。
文件菜单包含新建、打开、关闭项目和文件,打印文件和退出等基本功能菜单。
编辑菜单包含撤销、剪切、复制、查找等常用功能,高级菜单包含标示空白符、折叠代码、改变字体大小等功能。
构建菜单包含构件和运行项目等相关菜单。
调试菜单包含调试程序相关的功能菜单。
分析菜单包含常用分析工具的菜单。
工具菜单包含快速定位菜单、版本控制工具菜单、界面编辑器菜单等。
窗体菜单包含设置窗口布局的一些菜单,如全局显示、隐藏边栏。
帮助菜单包含Qt帮助、QtCreator版本信息和插件管理等菜单。

2、QtCreator模式选择器

QtCreator模式选择器包括欢迎模式、编辑模式、设计器模式、调试模式、项目模式、分析模式、帮助模式。
欢迎模式主要提供一些功能的快捷入口,如打开帮助教程、打开示例程序、打开项目、新建项目、快速打开以前的项目和会话等功能
编辑模式主要提供查看和编辑程序代码,管理项目文件等功能。QtCreator编辑器具有关键字特殊颜色显示、代码自动补全、声明定义间快捷切换、函数原型提示、F1键快速打开相关帮助、全项目中进行查找等功能。
设计器模式整合了Qt Designer的功能,设计图形界面,进行部件属性设置、信号和槽设置、布局设置等。
调试模式,QtCreator默认使用GDB进行调试,支持设置断点、单步调试和远程调试等功能,包含局部变量和监视器、断点、线程、快照查看窗口等。
项目模式,包含具体项目的构建设置、运行设置、编辑器设置、依赖关系等页面。构建设置中可以对项目的版本、使用的Qt版本、编译步骤进行设置。编辑器设置中可以设置文件的默认编码。
帮助模式,整合了Qt助手,包含目录、查找、索引、书签等导航模式。

3、QtCreator常用按钮

QtCreator常用按钮包括目标选择器、运行按钮、调试按钮、构建按钮。目标选择器用来选择要构建哪个平台的项目;运行按钮实现项目的构建和运行;调试按钮进入调试模式,进行程序调试;构建按钮可以构建所有打开的项目。

4、QtCreator定位器

QtCreator中,定位器用来快速定位项目、文件、类、方法、帮助文档、文件系统,可以使用过滤器更加准确定位要查找的结果。

5、QtCreator输出面板

QtCreator输出面板包含了构建问题、搜索结果、应用程序输出、编译输出、QML/JS命令窗口、一般信息。
构建问题窗口显示程序编译时的错误和警告信息;搜索结果窗口显示执行搜索后的结果信息;应用程序输出窗口显示在程序运行过程中输出的所有信息;编译输出窗口显示在程序编译过程中输出的相关信息;QML命令窗口显示QML命令记录;版本控制系统窗口显示版本控制系统的记录。

原文地址:http://blog.51cto.com/9291927/2093779

时间: 2024-07-29 19:18:40

QtCreator源码分析(一)——QtCreator源码简介的相关文章

【E2LSH源码分析】E2LSH源码综述及主要数据结构

上一小节,我们对p稳定分布LSH的基本原理进行了介绍(http://blog.csdn.net/jasonding1354/article/details/38237353),在接下来的博文中,我将以E2LSH开源代码为基础,对E2LSH的源码进行注解学习,从而为掌握LSH的基本原理以及未来对相似性搜索的扩展学习打下基础. 1.代码概况 E2LSH的核心代码可以分为3部分: LocalitySensitiveHashing.cpp--主要包含基于LSH的RNN(R-near neighbor)数

cocos2d-x 源码分析 : control 源码分析 ( 控制类组件 controlButton)

源码版本来自3.1rc 转载请注明 cocos2d-x源码分析总目录 http://blog.csdn.net/u011225840/article/details/31743129 1.继承结构 control的设计整体感觉挺美的,在父类control定义了整个控制事件的基础以及管理,虽然其继承了Layer,但其本身和UI组件的实现并没有关联.在子类(controlButton,controlSwitch,controlStepper等中实现不同的UI组件).下面通过源码来分析control与

cocos2d-x 源码分析 之 CCTableView源码分析(附使用方法讨论)

cocos2d-x源码总目录 http://blog.csdn.net/u011225840/article/details/31743129 源码来自2.x,转载请注明 1.继承结构 首先来看下CCTableView的继承结构 从继承结构上看,CCTableView是一种CCScrollView,所以为了研究CCTableView的源码,清先去了解CCScrollView的源码http://blog.csdn.net/u011225840/article/details/30033501. 其

【JDK源码分析】通过源码分析CyclicBarrier

前言 CyclicBarrier它是什么?一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点.类似于朋友之间联系要在中午聚个会,几个朋友全部到齐后才开始喝酒吃菜. 源码 CyclicBarrier属性和构造器 public class CyclicBarrier { // 互斥锁 private final ReentrantLock lock = new ReentrantLock(); // 条件等待 private final Condition trip = lock.new

【MyBatis源码分析】select源码分析及小结

示例代码 之前的文章说过,对于MyBatis来说insert.update.delete是一组的,因为对于MyBatis来说它们都是update:select是一组的,因为对于MyBatis来说它就是select. 本文研究一下select的实现流程,示例代码为: 1 public void testSelectOne() { 2 System.out.println(mailDao.selectMailById(8)); 3 } selectMailById方法的实现为: 1 public M

Java多线程 -- JUC包源码分析11 -- ThreadPoolExecutor源码分析

在JUC包中,线程池部分本身有很多组件,可以说是前面所分析的各种技术的一个综合应用.从本文开始,将综合前面的知识,逐个分析线程池的各个组件. -Executor/Executors -ThreadPoolExecutor使用介绍 -ThreadPoolExecutor实现原理 –ThreadPoolExecutor的中断与优雅关闭 shutdown + awaitTermination –shutdown的一个误区 Executor/Executors Executor是线程池框架最基本的几个接

spring事务源码分析结合mybatis源码(一)

最近想提升,苦逼程序猿,想了想还是拿最熟悉,之前也一直想看但没看的spring源码来看吧,正好最近在弄事务这部分的东西,就看了下,同时写下随笔记录下,以备后查. spring tx源码分析 这里只分析简单事务也就是DataSourceTransactionManager 首先肯定找入口了,看过spring源码的同学一定都会找spring tx的入口就是在TxAdviceBeanDefinitionParser这里将解析tx的配置,生成TransactionInterceptor对象,这个也就是一

【JDK源码分析】通过源码彻底理解ReentrantLock显示锁

前言ReentrantLock和synchronized一样是一个可重入的互斥锁,但ReentrantLock功能更强大,它提供了非公平和公平两种锁争用策略供使用者选择,而synchronized只有非公平一种.ReentrantLock提供了可中断的锁等待机制以及可用于多组线程需要分组唤醒的条件. 类图下面是ReentrantLock的类图,内部抽象类Sync继承了AbstractQueuedSynchronizer(以下简称AQS),公平锁FairSync.非公平锁NonfairSync继承

【JDK源码分析】深入源码分析CountDownLatch

前言 CountDownLatch是一个闭锁实现,它可以使一个或者多个线程等待一组事件发生.它包含一个计数器,用来表示需要等待的事件数量,coutDown方法用于表示一个事件发生,计数器随之递减,而await方法等待计数器为0之前一直阻塞.它是基于AQS的共享锁来实现的,其中使用了较多的AQS的方法,所以在这之前最好阅读过AQS的源码,不嫌弃也可以查看本人之前AQS的源码分析,有些AQS方法没有在之前分析过的这里涉及到了会进行分析. 源码 我们先看它的属性和构造器, // Sync为其内部类 p

NIO 源码分析(02-2) BIO 源码分析 Socket

目录 一.BIO 最简使用姿势 二.connect 方法 2.1 Socket.connect 方法 2.2 AbstractPlainSocketImpl.connect 方法 2.3 DualStackPlainSocketImpl.socketConnect 方法 三.SocketInputStream 3.1 构造方法 3.2 read 方法 四.SocketInputStream Netty 系列目录(https://www.cnblogs.com/binarylei/p/101174