<QtPlugin> - 定义插件
<QtPlugin>头文件定义了用于定义插件的宏。更多...
头文件 | #include <QtPlugin> |
属于插件类部分。
宏
Q_DECLARE_INTERFACE(ClassName, Identifier) | |
Q_IMPORT_PLUGIN(PluginName) | |
Q_PLUGIN_METADATA(...) |
参见 如何创建 Qt 插件.
宏文档
Q_DECLARE_INTERFACE(ClassName, Identifier)
此宏将给定的 Identifier(一个字符串文字)与称为 ClassName 的接口类关联。标识符必须唯一。
这个宏通常在头文件中紧接在 ClassName 类的定义之后使用。
如果您想使用在命名空间中声明的接口类与 Q_DECLARE_INTERFACE 一起使用,则必须确保 Q_DECLARE_INTERFACE 不在命名空间内部。例如
namespace Foo { struct MyInterface { ... }; } Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")
参见 Q_INTERFACES() 和 如何创建 Qt 插件.
Q_IMPORT_PLUGIN(PluginName)
此宏导入名为 PluginName 的插件,该插件与通过 Q_PLUGIN_METADATA() 声明元数据的类名相对应。
将此宏插入到您的应用程序源代码中,您就可以使用静态插件了。
示例
Q_IMPORT_PLUGIN(qjpeg)
在构建应用程序时,静态插件也必须由链接器包含。有关更多信息,请参阅静态插件。
参见 静态插件 和 如何创建 Qt 插件.
Q_PLUGIN_METADATA(...)
此宏用于声明作为该对象的实例之一部分的部分数据。
此宏需要声明通过该对象实现接口的 IID,并且引用包含插件元数据的文件。
对于 Qt 插件,源代码中恰好应有一个此宏的出现。
示例
class MyInstance : public QObject { Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mymetadata.json") };
请注意,此宏所在的类必须是可以默认构造的。
FILE 是可选的,指向一个 json 文件。
json 文件必须位于构建系统指定的包含目录之一中。当 moc 无法找到指定的文件时,moc 会退出并显示错误。
参见 Q_DECLARE_INTERFACE() 和 如何创建 Qt 插件.
© 2024 Qt公司有限公司。本文件中包含的文档贡献为其各自所有者的版权。所提供的文档根据自由软件基金会发布的条款,在GNU自由文档许可协议版本1.3下许可。Qt及其相关标志是芬兰及/或世界其他国家的Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。