构建本身的 Qt 插件系统

简述

Qt 自己提供了插件相关的技术,但并无提供一个通用的插件框架!假若要开发一个较大的 GUI 应用程序,并但愿使其可扩展,那么拥有这样一个插件框架无疑会带来很大的好处。html

根据 深刻理解插件系统 一文,对插件系统有了必定的了解以后,咱们能够很快的构建一个属于本身的 Qt 插件系统。web

| 版权声明:一去、二三里,未经博主容许不得转载。框架

插件系统的构成

插件系统,能够分为三部分:svg

  • 主系统
    经过插件管理器加载插件,并建立插件对象。一旦插件对象被建立,主系统就会得到相应的指针/引用,它能够像任何其余对象同样使用。.net

  • 插件管理器
    用于管理插件的生命周期,并将其暴露给主系统。它负责查找并加载插件,初始化它们,而且可以进行卸载。它还应该让主系统迭代加载的插件或注册的插件对象。插件

  • 插件
    插件自己应符合插件管理器协议,并提供符合主系统指望的对象。指针

实际上,不多能看到这样一个相对独立的分离,插件管理器一般与主系统紧密耦合,由于插件管理器须要最终提供(定制)某些类型的插件对象的实例。xml

程序流

框架的基本程序流,以下所示:htm

html>