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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
/****************************************************************************
**
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial Usage
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in a
** written agreement between you and Nokia.
**
** GNU Free Documentation License
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of this
** file.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\headerfile <QtPlugin>
\title Macros for Defining Plugins
\brief The <QtPlugin> header files 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 examples/tools/plugandpaint/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}{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 doc/src/snippets/code/doc_src_qplugin.qdoc 0
\sa Q_INTERFACES(), Q_EXPORT_PLUGIN2(), {How to Create Qt Plugins}
*/
/*!
\macro Q_EXPORT_PLUGIN(ClassName)
\relates <QtPlugin>
\obsolete
Use Q_EXPORT_PLUGIN2() instead. This macro is equivalent to
Q_EXPORT_PLUGIN2(\a ClassName, \a ClassName).
*/
/*!
\macro Q_EXPORT_PLUGIN2(PluginName, ClassName)
\relates <QtPlugin>
\since 4.1
\keyword Q_EXPORT_PLUGIN2
This macro exports the plugin class \a ClassName for the plugin specified
by \a PluginName. The value of \a PluginName should correspond to the
\l{qmake Variable Reference#TARGET}{TARGET} specified in the plugin's
project file.
There should be exactly one occurrence of this macro in the source code
for a Qt plugin, and it should be used where the implementation is written
rather than in a header file.
Example:
\snippet doc/src/snippets/code/doc_src_qplugin.qdoc 1
See the \l{tools/plugandpaint}{Plug & Paint} example for details.
\sa Q_DECLARE_INTERFACE(), {How to Create Qt Plugins}
*/
/*!
\macro Q_IMPORT_PLUGIN(PluginName)
\relates <QtPlugin>
This macro imports the plugin named \a PluginName, corresponding
to the \l{qmake Variable Reference#TARGET}{TARGET} specified in the
plugin's project file.
Inserting this macro into your application's source code will allow
you to make use of a static plugin.
Example:
\snippet doc/src/snippets/code/doc_src_qplugin.qdoc 2
Static plugins must also be included by the linker when your
application is built. For Qt's predefined plugins,
you can use the \c QTPLUGIN to add
the required plugins to your build. For example:
\snippet doc/src/snippets/code/doc_src_qplugin.qdoc 3
\sa {Static Plugins}, {How to Create Qt Plugins}, {Using qmake}
*/
/*!
\macro Q_EXPORT_STATIC_PLUGIN(ClassName)
\relates <QtPlugin>
\internal
*/
|