QT插件的创建及调用

创建:

  新建Lib工程

新建后,将下面的文件全部删除。只留一个pro文件。 

 此时新增一个.h文件。Interface.h。

 因为我们是要做插件,根据QT的插件机制。需要一个类位接口类,所以该类里面必须有纯虚函数。IIDS为每个插件的“类似于标识符”。

Q_DECLARE_INTERFACE(name,QString).将一个字符串与一个接口类绑定,作为标识。

此时,我们的接口类就定义完毕了。

下面来定义一个插件。

为工程新增一个C++工程,包含.h和.cpp。作者新增的类为MyFirstWidgetPlugins

 还是先看.h文件里的定义.

如果你的插件不想有界面。那么就继承QObject。然后还必须要继承我们之前写的接口类。 重写纯虚函数。并添加

Q_INTERFACES(PluginsInterface) //:PluginsInterface为我们的接口类的名称
Q_PLUGIN_METADATA(IID IIDS FILE "widgetplugin.json")//这个json文件不能不存在。内容为空也可。

插件机制中,最主要的用到的就是这三个宏。具体这三个宏做了什么,参考这位老哥分析

https://blog.csdn.net/wangw8507/article/details/119278632

Q_DECLARE_INTERFACE

Q_INTERFACES

Q_PLUGIN_METADATA

我们重写纯虚函数后。用代码设置界面大小,添加控件后,

tips:如果是带界面的插件,那么我们设计接口类的时候,必须要有个接口去返回界面的指针,这样在工程里才能使用到插件的界面。不带界面的插件 则可以忽略。

 此时一个简单的插件工程就做好了。执行构建,会得到动态库。

调用:

        将刚刚的插件的接口头文件,及生成的库复制到工程下。添加头文件。添加库,即可。关于待用的代码,如下。

插件项目和调用项目工程文件链接 

https://download.csdn.net/download/qq_39501474/21059801?spm=1001.2014.3001.5503

将plugins工程执行构建,然后将生成.dll动态库

将此库与接口头文件,放到testdiaoyong工程源文件目录下: 

然后编译运行TestDiaoyong工程 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值