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)及其状态。