Qt插件定义
来源:互联网 发布:深圳24小时营业 知乎 编辑:程序博客网 时间:2024/06/16 15:19
定义插件的宏
在头文件 <QtPlugin>
中,包含了几个用于定义插件的宏:
Q_DECLARE_INTERFACE(ClassName, Identifier)
Q_IMPORT_PLUGIN(PluginName)
Q_PLUGIN_METADATA(...)
所以,在正式编写插件之前,很有必要先了解他们,一起来看看助手中的描述吧!
- 定义插件的宏
- 宏文档
版权所有:一去丶二三里,转载请注明出处:http://blog.csdn.net/liang19890820
宏文档
Q_DECLARE_INTERFACE(ClassName, Identifier)
该宏将给定的 Identifier
(标识符 - 字符串类型)与名为 ClassName
的接口类相关联,Identifier
必须是惟一的。例如:
#define BrushInterface_iid "org.qt-project.Qt.Examples.PlugAndPaint.BrushInterface"Q_DECLARE_INTERFACE(BrushInterface, BrushInterface_iid)
该宏通常在 ClassName
的类定义之后使用,在头文件中。
如果要将 Q_DECLARE_INTERFACE
用于一个命名空间中声明的接口类,则必须确保 Q_DECLARE_INTERFACE
不在命名空间内。例如:
namespace Foo{ struct MyInterface { ... };}Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")
Q_IMPORT_PLUGIN(PluginName)
该宏导入了名为 PluginName
的插件,参数 PluginName
与使用 Q_PLUGIN_METADATA()
(声明插件元数据)的类名称相对应。
将这个宏插入到应用程序的源代码中,将允许使用一个静态插件。
例如:
Q_IMPORT_PLUGIN(qjpeg)
当构建应用程序时,链接器还必须包含静态插件。对于 Qt 的预定义插件,可以使用 QTPLUGIN
将所需的插件添加到构建中。例如:
TEMPLATE = appQTPLUGIN += qjpeg qgif # 图像格式
Q_PLUGIN_METADATA(...)
该宏用于声明(实例化该对象的)插件的元数据,元数据是插件的一部分。
该宏需要声明(通过该对象实现的)接口的 IID
,并引用包含插件元数据的文件。
例如:
class MyInstance : public QObject{ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mymetadata.json")};
注意: 这个宏所在的类必须是默认可构造的。
FILE
是可选的,并指向一个 Json 文件。
Json 文件必须位于构建系统指定的包含目录之一中。当无法找到指定的文件时,moc 会出现错误。
- Qt插件定义
- Qt 插件
- Qt 插件
- Qt插件
- QT-插件
- [QT]qt plugin插件
- Qt实例分析——C++定义的类创建为供QML使用的插件
- QT宏定义
- 软件插件的定义
- 学会定义Jquery插件
- 定义JQuery插件
- 定义JQuery插件
- 定义JQuery插件
- // 插件的定义
- 插件规范定义
- jquery插件定义
- JQuery插件定义
- jquery定义插件
- Apache与Nginx的优缺点比较
- Kafka使用log.retention.hours改变消息端的消息保存时间
- $.post() 提交表单,$.get() 异步刷新页面
- VM虚拟机centos6.5安装nginx
- HTML表格,跨行、跨列
- Qt插件定义
- tensorflow使用gpu
- Java之Javassist对类的常用操作小结-yellowcong
- Spring Boot相关知识
- 下列代码之后的结果为()?
- REM手机屏幕适配
- jdbc连接数据库的7大步骤(以通过jdbc连接实现数据的插入、更新为例)
- Twitter_Snowflake生成主键代码
- EPON OLT网管系统的实现