- [DT框架使用教程01]如何在DT框架中创建插件
DT框架代码地址: https://github.com/huifeng-kooboo/DT
由于国内访问速度的问题 也可以访问gitee的地址: https://gitee.com/huifeng_github/DT
DT框架是基于QT框架衍生出的组件化框架。
对于想具体了解DT框架的同学,介绍可以查看该处 访问链接: https://blog.csdn.net/Giser_D/article/details/128235728
目前针对于DT框架创建插件的话,可以使用两种方式进行创建
- 采用
QtCreator
可视化界面进行创建
(1)使用QtCreator 打开Plugins.pro
![[DT框架使用教程01]如何在DT框架中创建插件 [DT框架使用教程01]如何在DT框架中创建插件](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAyMjEyLzEzMDAxMDU3XzYzOTc1MjkxMzY2ZDc2MTI5NS5wbmc%3D.png?w=700&webp=1)
(2)右键plugins.pro
点击新建子项目
![[DT框架使用教程01]如何在DT框架中创建插件 [DT框架使用教程01]如何在DT框架中创建插件](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAyMjEyLzEzMDAxMDU3XzYzOTc1MjkxYTFlY2MyNTQxNC5wbmc%3D.png?w=700&webp=1)
(3)选择C++Library
![[DT框架使用教程01]如何在DT框架中创建插件 [DT框架使用教程01]如何在DT框架中创建插件](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAyMjEyLzEzMDAxMDU3XzYzOTc1MjkxOTJlMDg5MDQwOC5wbmc%3D.png?w=700&webp=1)
(4) 输入名称 这边为了演示 选择demo
![[DT框架使用教程01]如何在DT框架中创建插件 [DT框架使用教程01]如何在DT框架中创建插件](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAyMjEyLzEzMDAxMDU3XzYzOTc1MjkxNDAzMTU0NTM0LnBuZw%3D%3D.png?w=700&webp=1)
(5)一路下一步 可以看到插件补充进去了
![[DT框架使用教程01]如何在DT框架中创建插件 [DT框架使用教程01]如何在DT框架中创建插件](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAyMjEyLzEzMDAxMDU3XzYzOTc1MjkxOGVkNWQzNzQxOC5wbmc%3D.png?w=700&webp=1)
(6)修改demo.pro
参数
# 添加依赖的静态库
win32::LIBS += $$PWD/../../bin/libcommon.a
win32::LIBS += $$PWD/../../bin/libdtui.a
# 生成文件路径
DESTDIR = $$PWD/../../bin/plugins/
# 生成文件名称
TARGET = demo
HEADERS += ../plugins_base/pluginsmanager_base.h \ # 添加plugin_base的引用
![[DT框架使用教程01]如何在DT框架中创建插件 [DT框架使用教程01]如何在DT框架中创建插件](https://image.shishitao.com:8440/aHR0cHM6Ly9zMi41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAyMjEyLzEzMDAxMDU3XzYzOTc1MjkxOGQzYTAzMDIzMy5wbmc%3D.png?w=700&webp=1)
(7)demo.h
进行调整
#ifndef DEMO_H
#define DEMO_H
#include "demo_global.h"
#include "pluginsmanager_base.h"
#define PLUGIN_Demo_IID "Plugin.Demo"
class DEMO_EXPORT Demo: public DTPluginBase
{
Q_OBJECT
Q_PLUGIN_METADATA(IID PLUGIN_Demo_IID)
public:
Demo(QObject* qobj=nullptr);
void loadUI() override;
public:
void slotEventFromPlugins(const PluginMetaData& plt) override;
QVariant slotHandleMessage(const PluginMetaData &plt) override;
};
#endif // DEMO_H
(8)编译生成插件
- 复制框架用例的插件(推荐)
复制框架用例的插件,进行修改名称等,加入plugins.pro文件中即可