blob: dd4aa5f4b096e500216de37c73754e4c70c7a173 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\headerfile <QtPlugin>
\inmodule QtCore
\title Defining Plugins
\keyword qtplugin-defining-plugins
\ingroup plugins
\brief The <QtPlugin> header file defines macros for defining plugins.
\sa {How to Create Qt Plugins}
*/
/*!
\macro Q_DECLARE_INTERFACE(ClassName, Identifier)
\relates <QtPlugin>
This macro associates the given \a Identifier (a string literal)
to the interface class called \a ClassName. The \a Identifier must
be unique. For example:
\snippet plugandpaint/app/interfaces.h 3
This macro is normally used right after the class definition for
\a ClassName, in a header file. See the
\l{tools/plugandpaint/app}{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:
\snippet code/doc_src_qplugin.cpp 0
\sa Q_INTERFACES(), {How to Create Qt Plugins}
*/
/*!
\macro Q_PLUGIN_METADATA(...)
\relates <QtPlugin>
\since 5.0
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:
\snippet code/doc_src_qplugin.cpp 1
See the \l{tools/plugandpaint/app}{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.
\sa Q_DECLARE_INTERFACE(), {How to Create Qt Plugins}
*/
/*!
\macro Q_IMPORT_PLUGIN(PluginName)
\relates <QtPlugin>
This macro imports the plugin named \a 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:
\snippet code/doc_src_qplugin.cpp 2
Static plugins must also be included by the linker when your
application is built. See \l{Static Plugins} for more information
on this.
\sa {Static Plugins}, {How to Create Qt Plugins}
*/
|