The <QtPlugin> header file defines macros for defining plugins.
See also
How to Create Qt Plugins
This macro associates the given Identifier
(a string literal) to the interface class called ClassName
. The Identifier
must be unique. For example:
#define BrushInterface_iid "org.qt-project.Qt.Examples.PlugAndPaint.BrushInterface/1.0" Q_DECLARE_INTERFACE(BrushInterface, BrushInterface_iid)
This macro is normally used right after the class definition for ClassName
, in a header file. See the Plug & Paint example for details.
If you want to use with interface classes declared in a namespace then you have to make sure the is not inside a namespace though. For example:
Foo = namespace() class MyInterface(): pass Q_DECLARE_INTERFACE(Foo::MyInterface, "org.examples.MyInterface")See also
Q_INTERFACES()
How to Create Qt Plugins
This macro imports the plugin named PluginName
, which corresponds with the name of the class that declares metadata for the plugin with Q_PLUGIN_METADATA()
.
Inserting this macro into your application’s source code will allow you to make use of a static plugin.
Example:
Q_IMPORT_PLUGIN(qjpeg)
Static plugins must also be included by the linker when your application is built. For Qt’s predefined plugins, you can use the QTPLUGIN
to add the required plugins to your build. For example:
<Code snippet "code/doc_src_qplugin.pro:3" not found>See also
Static PluginsHow to Create Qt PluginsGetting Started with qmake
This macro is being used to declare meta data that is part of a plugin that instantiates this object.
The macro needs to declare the IID of the interface implemented through the object, and reference a file containing the meta data for the plugin.
There should be exactly one occurrence of this macro in the source code for a Qt plugin.
Example:
class MyInstance(QObject): Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDummyPlugin" FILE "mymetadata.json")
See the Plug & Paint example for details.
Note that the class this macro appears on must be default-constructible.
FILE is optional and points to a json file.
The json file must reside in one of the include directories specified by the build-system. moc exits with an error when it could not find the specified file.
See also
Q_DECLARE_INTERFACE()
How to Create Qt Plugins
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.