【Qt】通过QtCreator源码学习Qt(四):插件管理PluginManager

189 篇文章 137 订阅 ¥69.90 ¥99.00
本文深入解析Qt Creator的插件管理机制,重点介绍PluginManager类,包括插件的XML描述符、对象池的管理和插件的加载过程。PluginManager负责插件的状态、生命周期及对象注册,支持线程安全的对象池操作,如对象添加、删除以及按类型或条件检索。通过PluginManager,插件可以提供扩展点,其他插件可以动态添加和查找实现。
摘要由CSDN通过智能技术生成
1、简介

QtCreator使用插件架构,方便扩展。它的核心是插件管理,主类是PluginManager。
下面是翻译src\libs\extensionsystem\pluginmanager.cpp中关于插件的一些说明,后续会详细分析插件管理的代码。

2、名字空间、主要类介绍

插件使用的名字空间是namespace:ExtensionSystem:它提供了属于核心插件系统的类。ExtensionSystem包含插件管理器及其支持类,以及必须由插件提供者实现的IPlugin接口。

class ExtensionSystem::PluginManager:主类
PluginManager类实现了核心插件系统,包括对插件本身以及它们的状态、生命周期、注册的对象的管理。

3、插件

插件由XML描述符文件和包含Qt插件的库组成它必须派生自IPlugin类,并且IID为"org.qt-project.Qt.QtCreatorPlugin"。
插件管理器通过路径列表,以搜索插件、检索关于这些插件状态的信息并加载它们。通常,插件管理器只需要一个,因此应用程序中创建一个PluginManager实例并启动加载。
加载插件的步骤:设置插件路径列表、尝试加载所有插件:
PluginManager::setPluginPaths(QStringList(“plugins”));
PluginManager::loadPlugins(); // try to load all the plugins

此外,还可以直接访问插件规范(描述文件中的信息)、插件实例(通过PluginSpec)及其状态。

4、对象池
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭老二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值