<QtPlugin> - Defining Plugins▲
-
Header: QtPlugin
-
Group: <QtPlugin> is part of Plugin Classes
Detailed Description▲
Macro Documentation▲
Q_DECLARE_INTERFACE(ClassName, Identifier)▲
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 Q_DECLARE_INTERFACE with interface classes declared in a namespace then you have to make sure the Q_DECLARE_INTERFACE is not inside a namespace though. For example:
namespace
Foo
{
struct
MyInterface {
... }
;
}
Q_DECLARE_INTERFACE(Foo::
MyInterface, "org.examples.MyInterface"
)
See Also▲
See also Q_INTERFACES(), How to Create Qt Plugins
Q_IMPORT_PLUGIN(PluginName)▲
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. See Static Plugins for more information on this.
See Also▲
See also Static Plugins, How to Create Qt Plugins
[since 5.0] Q_PLUGIN_METADATA(...)▲
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 : public
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.
This macro was introduced in Qt 5.0.
See Also▲
See also Q_DECLARE_INTERFACE(), How to Create Qt Plugins