Qt基础之二十四:深入理解插件系统

一.Qt中的插件

Qt提供了两类API来创建插件:
☆high-level API用于创建Qt自身的扩展,比如说自定义数据库驱动、图像格式、文本编码、样式,等等
☆low-level API用于扩展Qt应用程序
如果你想为Qt Designer提供插件,可以参考Qt Assistant:Qt Designer Manual

1.high-level API

通过子类化合适的插件基类,然后重写一些函数、添加一个宏,就能扩展出一个插件。常用的插件基类包括QSqlDriverPlugin、QStylePlugin、QAudioSystemPlugin等等。
详见Qt Create中提供的例子:Style Plugin Example 

2.low-level API

包括以下步骤的应用程序可以通过插件来扩展:
①定义一个只包含纯虚函数的接口类,这些接口用于和插件交互
②使用Q_DECLARE_INTERFACE()宏告将这个接口告知Qt元对象系统
③使用QPluginLoader加载插件
④使用qobject_cast()测试插件是否实现了这个接口
写一个插件包括以下几个步骤:
①声明一个继承自QObject和上面提到的接口
②使用Q_INTERFACES()宏告将这个接口告知Qt元对象系统
③使用Q_PLUGIN_METADATA()宏导出插件
④编译插件,注意.pro文件的写法
详见Qt Create中提供的例子:Echo Plugin Example
我们通常自定义widget插件,本质上也是用的low-level API,如下所示:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

草上爬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值