QT中的插件开发分为两种:
1、扩展QT本身的插件
2、扩展QT应用程序的插件,
本文描述的插件为后者。
打开QT的官方插件例子Echo Plugin Example,可以看到项目中有两个子项目:
其中plugin是例子中的插件,echopluginwindow是调用插件的程序
插件的创建步骤
创建plugin有以下步骤:
- 定义一个继承了QObject和该插件的对应接口类。
- 使用Q_INTERFACES注册一个接口。
- 使用Q_PLUGIN_METADATA导出该插件。
- 定义了一个叫做echo的纯虚函数。
pro文件:
- TEMPLATE = lib 意思是生成文件为库文件
- CONFIG += plugin 意思是让qmake创建一个插件
如何使用插件
- 定义一个只有纯虚函数的抽象类,作为接口。
- 用Q_DECLARE_INTERFACE宏在这个抽象类中注册这个接口
- 定义插件要实现的纯虚函数echo。
- 使用QPluginLoader类来加载这个插件
- 使用qobject_cast来把加载的插件进行类型转换,如果能够转换为接口的抽象类,即说明插件实现的给定的接口。
这就是插件的简单使用方法,这个程序实现的功能是一个简单的文字复制功能。