Qt插件接口相关的两个重要宏

Q_INTERFACES(...)

在实现插件时使用:用于声明该类所实现的接口,且这些接口必须使用了Q_DECLARE_INTERFACE进行了声明。

Example:

class BasicToolsPlugin : public QObject,
                           public BrushInterface,
                           public ShapeInterface,
                           public FilterInterface
  {
      Q_OBJECT
      Q_PLUGIN_METADATA(IID "org.qt-project.Qt.Examples.PlugAndPaint.BrushInterface" FILE "basictools.json")
      Q_INTERFACES(BrushInterface ShapeInterface FilterInterface)

  public:
      ...
  };

 

Q_DECLARE_INTERFACE(ClassName, Identifier)

在申明插件接口时使用:用于给插件接口类(ClassName)绑定一个唯一标识符(Identifier)。

For example:

#define BrushInterface_iid "org.qt-project.Qt.Examples.PlugAndPaint.BrushInterface"

  Q_DECLARE_INTERFACE(BrushInterface, BrushInterface_iid)

如果要为声明在名空间中的接口类绑定唯一标识符,则需要把Q_DECLARE_INTERFACE写在名空间之外。

For example:

namespace Foo
  {
      struct MyInterface { ... };
  }

  Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")

原文:Qt官方Assistant

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值