文章目录
前言
在Qt插件式开发中,Q_DECLARE_INTERFACE
、Q_PLUGIN_METADATA
和Q_INTERFACES
这3个宏扮演者非常重要的角色,只要使用了Qt官方的插件式开发框架,就必定会使用到这三个宏。笔者对这3个宏总是混淆、记不清楚,今天就总结下来,方便日后查看。
1. Q_DECLARE_INTERFACE
简介
Q_DECLARE_INTERFACE
用于生命一个接口类型,以便插件能够实现这个接口。这个宏会生成用于接口类型可识别和查询的代码。
这里进一步解释3个关键词,便于大家理解(或者以后的我~哈哈哈哈哈,忘的太快)
接口类型:即下文示例中的
MyInterface
类;
识别:通过IID
,即下文中的"com.example.MyInterface"
,在插件系统中唯一标识一个接口类型;
查询:通过IID
在插件系统中查找和加载一个实现了特定接口的插件。
用法示例:
#include <QtPlugin>
class MyInterface
{
public:
virtual