The <QtPlugin> header file defines macros for defining plugins. 更多...
头: | #include <QtPlugin> |
Q_DECLARE_INTERFACE ( ClassName , Identifier ) | |
Q_IMPORT_PLUGIN ( PluginName ) | |
Q_PLUGIN_METADATA (...) |
另请参阅 如何创建 Qt 插件 .
此宏关联给定 Identifier (字符串文字) 到接口类称为 ClassName 。 Identifier must be unique.
通常,此宏被正确使用在定义类之后,对于 ClassName , in a header file.
若想要使用 Q_DECLARE_INTERFACE 采用在名称空间中声明的接口类,必须确保 Q_DECLARE_INTERFACE 不在名称空间中。例如:
namespace Foo { struct MyInterface { ... }; } Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")
另请参阅 Q_INTERFACES () 和 如何创建 Qt 插件 .
此宏导入插件命名 PluginName ,相当于声明插件元数据的类名,采用 Q_PLUGIN_METADATA ().
将此宏插入应用程序源代码,将允许您使用静态插件。
范例:
Q_IMPORT_PLUGIN(qjpeg)
Static plugins must also be included by the linker when your application is built. See 静态插件 for more information on this.
另请参阅 静态插件 and 如何创建 Qt 插件 .
此宏用于声明元数据 (是实例化此对象的插件的一部分)。
宏需要声明透过对象实现的接口 IID,并引用包含插件元数据的文件。
此宏应准确出现在 Qt 插件源代码中一次。
范例:
class MyInstance : public QObject { Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mymetadata.json") };
注意:此宏的类的出现必须默认可构造。
FILE 是可选的并指向 json 文件。
json 文件必须位于构建系统指定包含的某个目录下。moc 带错误退出当找不到指定文件时。
另请参阅 Q_DECLARE_INTERFACE () 和 如何创建 Qt 插件 .