C++实现自己的插件框架 基于QtCreator源码裁剪

5 篇文章 0 订阅
3 篇文章 0 订阅

QtCreator2.5.2插件系统裁剪(requiresQt4.7.4 orlater

前言:一般的系统(非插件系统),在发布之后如果还需要修改,必须重新编译后发布。然而我们总有一些特殊的需求,要求已发布的系统能够动态的修改,而插件系统,可以很好的解决这个问题。实现插件系统首先要预先定义好系统的扩展接口,插件由其他开发人员根据系统预定的接口编写扩展功能。插件都是以一个独立文件的形式出现的。系统并不知道插件的具体功能,仅仅是为插件留下预定义的接口,系统启动的时候根据插件的配置寻找插件,根据预定的接口把插件挂接到系统中。Eclipse就算不是插件的鼻祖,应该也算是它将插件开发推向高潮吧。

具体细节可以参考一下文章:

由于Qt是开源,接触过QtCreator的朋友应该也发现了QtCreator本身也是一套基于插件系统开发的软件,并且源码在手,让我们在此基础上将其裁剪,拿出精髓部分,打造一个干净清爽的可直接用于项目的插件系统。

1.基础介绍

1)     Qmake是一个简化编译的工具,具体的介绍参考Qt帮助文档:

2.具体的裁剪过程

1)     首先我选择QtCreator2.5.2这个版本,应该算是Qt4.x较晚的版本了,因为Qt在新版本中大量使用了QBS进行编译(Qbs Manual),因此先从简单的下手,这个版本我在Qt4.8.2下操作。下载后解压出源码,这里提点注意,因为我自己也经常忘记,Qt的项目不要放在中文目录,不要放在带空格的目录,如果非要区分多个单词,用’_’、‘-’等连接。

2)     第一层目录只保留src、qtcreator.pri、qtcreator.pro和tests(这个如果不想写单元测试也删除了吧)其他都删除。

  • Qtcreator.pri修改其中的版本、名称等为自己的插件系统名称

下面粘贴部分修改内容:

  • QtCreator.pro,修改文件名称、删除没用的

3)     修改src/app文件夹

  • 只保留app.pro和main.cpp
  • App.pro中没用的东西删除或者注释,很多都是平台相关的资源
  • Main.cpp修改部分与QtCreator有关的路径变量等转为自定义的路径

 

4)     修改src/lib目录,只保留aggregation和extenstionsystem项目

  • 其中引用的pri等相关文件的名称修改为自定义的名称
  • 修改Src/Plugin目录,此目录中可全部删除,添加自己实现的插件

这里实现一个主程序窗口插件,以下为部分代码:

.h
classCoreGuiPlugin:publicExtensionSystem::IPlugin
{
        Q_OBJECT
public:
        CoreGuiPlugin();
    boolinitialize(constQStringList&arguments,QString*errorString);
        voidextensionsInitialized();
};
 
.cpp
boolCoreGuiPlugin::initialize(constQStringList&arguments,QString*errorString)
{
    Q_UNUSED(arguments);
    if(!ADLCoreGui::instance())
        errorString->append("ADLCoreGui'sinstance()failed!\n");
    ADLCoreGui::instance()->init();
    returntrue;
}
voidCoreGuiPlugin::extensionsInitialized()
{
    ADLCoreGui::instance()->getMainWindow()->show();
    return;
}

5)     删除src/share目录

6)     Src/shared目录只保留qtsingleapplication和qtlockedfile

7)     Src/tools只保留tools.pro且清空里面内容

8)     Src目录下的src.pro、QtCreatorlibrary.pri等修改文件中的一些变量和定义为自定义的名称即可

9)     编译通过之后运行程序如下:

至此已经完成插件系统的裁剪,在此基础上添加各种功能插件即可。

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Qt Creator源码解析可以帮助你深入了解Qt Creator的内部实现和工作原理。在进行源码解析之前,建议你熟悉C++语言Qt框架的基础知识。 Qt Creator源码托管在Git上,你可以通过以下步骤获取源码: 1. 克隆Qt Creator的Git仓库: ``` git clone https://code.qt.io/qt-creator/qt-creator.git ``` 2. 进入源码目录: ``` cd qt-creator ``` 3. 安装构建依赖: ``` qmake -r make ``` 一旦你成功地获取了Qt Creator源码,你可以使用任何你喜欢的编辑器或IDE来浏览和分析源代码。这里有一些你可以开始探索的关键部分: 1. Qt Creator的主要入口点是`src/qtcreator.pro`文件,它定义了项目的结构和构建配置。 2. `src/app/main.cpp`文件包含了Qt Creator的主要入口函数,在这里进行了一些初始化操作,然后启动了Qt Creator的应用程序。 3. `src/plugins`目录包含了Qt Creator插件,这些插件提供了丰富的功能和工具。你可以深入研究这些插件源码,了解它们是如何实现的。 4. `src/libs`目录包含了Qt Creator使用的一些核心库,如代码编辑器、调试器、可视化设计工具等。你可以深入研究这些库的源码,了解它们的内部实现和交互方式。 5. `src/shared`目录包含了一些共享的代码和工具类,它们被多个部分使用。你可以查看这些代码,了解它们是如何被重用和共享的。 在进行源码解析时,你可能会遇到一些挑战,因为Qt Creator是一个复杂的项目。阅读官方文档、参考示例代码以及与社区进行讨论都是非常有帮助的。同时,使用调试器来跟踪代码执行流程也是一个很好的学习方法。 希望这些信息对你进行Qt Creator源码解析有所帮助!
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值