- Q_DECLARE_INTERFACE
此宏用于把标识符与类名接口关联起来。这个标识符是唯一的,举个栗子:
#define BrushInterface_iid “org.qt-project.Qt.Examples.PlugAndPaint.BrushInterface”
Q_DECLARE_INTERFACE(BrushInterface, BrushInterface_iid)
2.Q_PLUGIN_METADATA
这个宏被用于声明元数据,这个元数据是被实例化插件的一部分。
这个宏需要通过对象声明被实例化接口的IID,并且要引用包含元数据内容的文件。
注意,这个宏只能出现在可以被实例化的类中(不能放在抽象类中)。
FILE是可选参数,他指向一个json文件。
这个json文件要包含在构建目录中(为资源文件),不然moc会出错。
3.Q_INTERFACES
此宏告诉Qt哪些接口被类实例了。这个宏通常用于插件的实例。
4.Qt的命名空间
QT_BEGIN_NAMESPACE
#define Interface_iid “com.IT1995.Interface”
Q_DECLARE_INTERFACE(AppInterface, Interface_iid)
QT_END_NAMESPACE
5.Q_DECLARE_METATYPE(MyStruct)
元类型
使用Q_DECLARE_METATYPE标记自定义类型,可以让QMetaType查询到类型,也可以让QVariant识别。