qt creator源码全方面分析(2-0)
目录
Extending Qt Creator Manual
Qt Creator是为Qt开发人员的需求量身定制的跨平台集成开发环境(IDE)。
Qt Creator可以通过多种方式扩展。 例如,Qt Creator架构基于插件加载器,这意味着插件加载器以外的所有功能都在插件中实现。 但是,您可以扩展和调整Qt Creator的许多部分,而无需求助于C++编码,以及实现这样的插件。
本文档概述了扩展Qt Creator的各种方法,根据您要实现的目标,并为您提供了相关的文档。
生成领域特定的代码和模板
如果您经常需要编写相同的代码,无论是小的代码片段,整个文件还是分布在多个文件中的类,还是完整的项目,都可以为此目的创建代码片段,模板和向导。
代码片段
通常,片段包含几行代码(尽管它们也可以是纯文本),您通常希望将其插入到更大的代码主体中,但不想每次都键入一遍。 例如,while和for循环,if-else和try-catch构造以及类框架。 片段的触发方式与普通代码编写一样(请参阅提供代码辅助)。Qt Creator包含一组预配置的代码片段,您可以在其中添加自己的片段。
> Snippets User Interface (翻译)
文件和项目模板
您可以扩展文件>新建文件或项目中的向导, 通过为自己的文件和项目模板编写JSON定义文件来扩展。
自定义向导
如果上述代码片段和模板的方法,还不能满足您的使用,那么你可以创建一个自定义的Qt Creator插件。 这使您在向导之外可以完全自主控制,但这需要您自己编写大部分UI和逻辑代码。
- Creating Plugins(翻译)
- Qt Creator Coding Rules(翻译)
- Creating Wizards in Code(翻译)
- User Interface Text Guidelines(翻译)
支持其他文件类型
如果您有扩展文件或MIME类型文件,而Qt Creator默认不处理,你可以编辑MIME类型定义,添加高亮定义文件,并创建你自己的文本编辑器。
MIME类型
你可能会发现Qt Creator可以处理您的特定文件,如果知道其内容的类型的话。 例如,对Qt Creator来说,未知的C++头文件或源文件扩展名。你可以修改Qt Creator中的MIME类型定义,来适应你的特定设置,通过添加或删除文件扩展名,并指定魔术头(magic headers)。
高亮和缩进
对于文本文件,Qt Creator提供了一种简单的方法,来为默认情况下未知的文件类型,添加高亮和缩进。常规高亮是基于Kate Editor提供的高亮定义文件。 您可以下载高亮定义文件,用于Qt Creator,而且也可以创建自己的定义文件。
自定义文本编辑器
除上述MIME类型和高亮功能外,如果您需要其他高级功能,例如自定义文本补全或语义分析功能,你可以使用自己的文本编辑器扩展Qt Creator。 Qt Creator提供了特殊的API,为你的文本编辑器提供基础,从根本上消除了实现文本编辑器的痛苦。
其他自定义编辑器
您还可以添加完全自定义的编辑器,彻底掌控其外观和行为。
运行外部工具
大多数软件项目和开发过程都需要各种外部工具。 Qt Creator中集成了一些外部工具,例如流行的版本控制系统和构建工具链。 但是,一个工具不可能涵盖所有用例,因此您可以将其他工具集成到Qt Creator中。
简单的外部工具
在Qt Creator中,您可以指定工具,然后可以从菜单或使用你设置的键盘快捷,来运行这些工具。 这使您可以完成某些事情,但有一些限制。 您指定要运行的命令,附加的参数和输入,以及如何处理输出。 要指定值,可以使用一组内部Qt Creator变量,例如当前文档或项目的文件名,或文本编辑器中当前选择的文本。 如果发现缺少变量,请毫不犹豫地填写功能建议。 工具描述将另存为可以共享的XML文件。
复杂的外部工具
当您计划集成更复杂的工具时,请仔细考虑,将工具紧密集成到Qt Creator中,或主要通过提供一种使用适当参数启动工具的方法来进行松散集成,那种更有好处。
松散集成工具
如果Qt Creator和外部工具之间不需要交互,启动外部程序,并使用其自带用户界面,会更好。这样可以避免Qt Creator用户界面混乱,而且即使完全不使用Qt Creator,该工具也具有良好的界面。
通常,您可以使用外部工具规范文件来启动工具。如果启动该工具,处理其输出,需要更复杂的逻辑,则可以通过插件在Qt Creator中添加菜单项。如果需要在Qt Creator中配置工具,则可以为其添加选项页面。
- Using External Tools(翻译)
- External Tool Specification Files(翻译)
- Creating Plugins(翻译)
- Qt Creator Coding Rules(翻译)
与工具输出进行交互
在某些情况下,运行外部工具不需要与Qt Creator紧密集成,但是研究该工具的输出可能会从中受益。 例如,某些工具在项目的一部分文件中生成问题列表,而某些工具创建与代码相关的输出。 对于这些工具,在输出和相应的代码之间进行交互切换非常有用。
处理该问题的一种方法是让该工具创建一个输出文件,然后在Qt Creator中打开该文件。 您提供了一个用于处理此文件的编辑器(可能是只读的)。 对于问题列表,请考虑创建任务列表文件,这些文件显示在问题输出窗格中。
所有主题
- 开发Qt Creator插件
- 参考
原创造福大家,共享改变世界
献出一片爱心,温暖作者心灵

qt creator源码全方面分析(2-0)的更多相关文章
- qt creator源码全方面分析(3-3)
目录 qtcreatordata.pri 定义stripStaticBase替换函数 设置自定义编译和安装 QMAKE_EXTRA_COMPILERS Adding Compilers 示例1 示例2 ...
- qt creator源码全方面分析(3-5)
目录 qtcreatorlibrary.pri 使用实例 上半部 下半部 结果 qtcreatorlibrary.pri 上一章节,我们介绍了src.pro,这里乘此机会,把src目录下的所有项目文件 ...
- qt creator源码全方面分析(0)
本人主攻C++和Qt. 上两天刚研究完Qt install framework(IFW)应用程序安装框架. google没发现有正儿八经的官方文档的翻译,我就进行了翻译哈!! 系列文章具体见:http ...
- qt creator源码全方面分析(4-0)
Qt系统 Qt Creator源码是在Qt对象和框架基础下写的,因此,阅读Qt Creator源码,你首先对Qt得有一定的了解. Qt Core Qt Core特征: The Meta-Object ...
- qt creator源码全方面分析(4-2)
目录 global头文件 global.h xx.h global头文件 插件的本质就是动态链接库,对于库,需要导出符号,供用户导入使用.在qt creator的源码中,存在固定的导入导出模式. gl ...
- qt creator源码全方面分析(4-5)
目录 Qt中的字符串 QLatinString 详细介绍 源码 小结 QStringLiteral(str) 详细介绍 源码 小结 Qt中的字符串 Qt中处理字符串最常用的肯定是QString,但是在 ...
- qt creator源码全方面分析(4-6)
目录 Qt插件基础 Qt插件基础 我们知道Qt Creator源码是基于插件架构的,那么我们先来介绍下插件基础知识. 相关内容如下: How to Create Qt Plugins [ - Defi ...
- qt creator源码全方面分析(3-2)
目录 qtcreator.pri 判断重复包含 定义版本信息 VERSION 定义IDE名称 启用C++14 CONFIG 自定义函数 Replace Functions Test Functions ...
- qt creator源码全方面分析(2-7)
目录 Completing Code 补全代码片段 编辑代码片段 添加和编辑片段 删除片段 重置片段 补全Nim代码 Completing Code 在编写代码时,Qt Creator建议使用属性,I ...
- qt creator源码全方面分析(2-10-1)
目录 Getting and Building Qt Creator 获取Qt 获取和构建Qt Creator Getting and Building Qt Creator 待办事项:应该对此进行扩 ...
随机推荐
- 简单的c语言程序
我猜大部分人第一门掌握的语言是c语言吧(我第一门学的是python). 在接下来的文章里我会逐步的介绍有关自己对c语言的理解,希望对一些小伙伴有帮助,有哪里有错误希望大佬指出. 首先这是第一个c语言程 ...
- Scala 学习(3)之「类——基本概念1」
类 小提示:可以通过:paste进入 Scala 的多行模式,输入对应的代码块之后,按ctrl + D退出多行模式,然后再调用刚才输入的函数或者方法进行测试 //定义类,包含 field 以及方法 c ...
- 安装Mysql 8.0的艰难体验
背景: Mysql 8.0 以后版本,在性能等方面有了很大提升,而且在自动编号.Timestamp等字段的设置上有了很方便的进步,因此在一年前即开始将原有的基于5.5版本的服务器逐渐向8.0转移.但转 ...
- 一文熟练使用python mock
mock作为python测试模拟对象工具,在单元测试当中使用较多,官方文档详细不够精简,这篇文章介绍mock常用的用法,以下为引用全文,留给自己和有需要的人查阅. https://realpython ...
- BFT-SMaRt:用Netty做客户端的可靠信道
目录 一.Netty服务端的构建 1. 父类构造函数 ① 查找缓存 ② 相关日志 2. 服务端构造 ① 配置读取 ② 服务端配置 3. 服务端功能 ① 通用接口功能 ② Channel处理器 4. 节 ...
- JS 点击验证码刷新
<img src="/get_valid_img" id="valid-img" title="点击再换一张" class=" ...
- elasticsearch(lucene)索引数据过程
倒排索引存储-分段存储(lucene的功能)在lucene中:lucene index包含了若干个segment在elasticsearch中:index包含了若干主从shard,shard包干了若干 ...
- linux--->linux 各个文件夹及含义
1./bin 是binary的缩写 存放linux常用命令 2./lib 该目录用来存放系统动态链接共享库,几乎所有的应用程序都会用到该目录下的共享库. 3./dev 该目录包含了Linux系统中使用 ...
- ElasticSearch入门篇Ⅰ --- ES核心知识概括
C01.什么是Elasticsearch 1.什么是搜索 垂直搜索(站内搜索) 互联网的搜索:电商网站,招聘网站,各种app IT系统的搜索:OA软件,办公自动化软件,会议管理,员工管理,后台管理系 ...
- Oracle批量创建同义词
一.介绍 Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用 ...