系列索引:CTK框架开发入门教程索引
上一篇中介绍了如何调用插件。本文介绍如何调用界面插件,插件显示的是界面,插件界面作为主界面的一部分。
结构如下
插件A
工程
一个常用的dll工程。
PluginActivator
用于加载插件的标准接口
1 2 3 4 5 6 7 8 9 10 11 12
| #include "pluginactivator.h" #include "mypluginservice.h"
void PluginActivator::start(ctkPluginContext *context) { ps.reset(new MyPluginService(context)); }
void PluginActivator::stop(ctkPluginContext *context) { Q_UNUSED(context) }
|
PluginService
此类的主要作用是创建一个界面对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #include "mypluginservice.h"
#include <ctkPluginContext.h> #include <QDebug> #include "widgeta.h"
MyPluginService::MyPluginService(ctkPluginContext *context) :m_pContext(context) { context->registerService<PluginService>(this); }
void MyPluginService::doSomething() { qDebug() << "Plugin A"; }
QWidget *MyPluginService::getWidget() { return new WidgetA; }
|
就是一个简单的QWidget界面。
插件B
代码和插件A一样,就是界面显示内容不一样。
主程序
主程序用于加载两个插件。
效果
加载一个插件的效果
加载两个插件的效果