CTK入门教程08.02:界面插件加载

系列索引: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

就是一个简单的QWidget界面。

插件B

代码和插件A一样,就是界面显示内容不一样。

主程序

主程序用于加载两个插件。

效果

加载一个插件的效果

一个插件

加载两个插件的效果

2个插件


CTK入门教程08.02:界面插件加载
https://feater.top/ctk/how-to-load-ctk-qwidget-plugin-library/
作者
JackeyLea
发布于
2024年1月8日
许可协议