Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qtmetamacros.h
Go to the documentation of this file.
1
// Copyright (C) 2019 The Qt Company Ltd.
2
// Copyright (C) 2019 Olivier Goffart <ogoffart@woboq.com>
3
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
// Qt-Security score:significant reason:default
5
6
#
ifndef
QTMETAMACROS_H
7
#
define
QTMETAMACROS_H
8
9
#
include
<
QtCore
/
qglobal
.
h
>
10
#
include
<
QtCore
/
qtclasshelpermacros
.
h
>
11
#
include
<
QtCore
/
qtdeprecationmarkers
.
h
>
12
13
QT_BEGIN_NAMESPACE
14
15
#
ifndef
Q_MOC_OUTPUT_REVISION
16
// This number should be in sync with moc's outputrevision.h
17
#
define
Q_MOC_OUTPUT_REVISION
69
18
#
endif
19
20
// The following macros can be defined by tools that understand Qt
21
// to have the information from the macro.
22
#
ifndef
QT_ANNOTATE_CLASS
23
#
define
QT_ANNOTATE_CLASS
(
type
,
...
)
24
#
endif
25
#
ifndef
QT_ANNOTATE_CLASS2
26
#
define
QT_ANNOTATE_CLASS2
(
type
,
a1
,
a2
)
27
#
endif
28
#
ifndef
QT_ANNOTATE_FUNCTION
29
#
define
QT_ANNOTATE_FUNCTION
(
x
)
30
#
endif
31
#
ifndef
QT_ANNOTATE_ACCESS_SPECIFIER
32
#
define
QT_ANNOTATE_ACCESS_SPECIFIER
(
x
)
33
#
endif
34
35
// The following macros are our "extensions" to C++
36
// They are used, strictly speaking, only by the moc.
37
38
#
ifndef
Q_MOC_RUN
39
#
ifndef
QT_NO_META_MACROS
40
#
if
defined
(
QT_NO_KEYWORDS
)
41
#
define
QT_NO_EMIT
42
#
else
43
#
ifndef
QT_NO_SIGNALS_SLOTS_KEYWORDS
44
#
define
slots
Q_SLOTS
45
#
define
signals
Q_SIGNALS
46
#
endif
47
#
endif
48
#
define
Q_SLOTS
QT_ANNOTATE_ACCESS_SPECIFIER
(
qt_slot
)
49
#
define
Q_SIGNALS
public
QT_ANNOTATE_ACCESS_SPECIFIER
(
qt_signal
)
50
#
define
Q_PRIVATE_SLOT
(
d
,
signature
)
QT_ANNOTATE_CLASS2
(
qt_private_slot
,
d
,
signature
)
51
#
define
Q_EMIT
52
#
ifndef
QT_NO_EMIT
53
#
define
emit
54
#
endif
55
#
ifndef
Q_CLASSINFO
56
#
define
Q_CLASSINFO
(
name
,
value
)
57
#
endif
58
#
define
Q_PLUGIN_METADATA
(
x
)
QT_ANNOTATE_CLASS
(
qt_plugin_metadata
,
x
)
59
#
define
Q_INTERFACES
(
x
)
QT_ANNOTATE_CLASS
(
qt_interfaces
,
x
)
60
#
define
Q_PROPERTY
(
...
)
QT_ANNOTATE_CLASS
(
qt_property
,
__VA_ARGS__
)
61
#
define
Q_PRIVATE_PROPERTY
(
d
,
text
)
QT_ANNOTATE_CLASS2
(
qt_private_property
,
d
,
text
)
62
#
ifndef
Q_REVISION
63
#
define
Q_REVISION
(
...
)
64
#
endif
65
#
define
Q_OVERRIDE
(
text
)
QT_ANNOTATE_CLASS
(
qt_override
,
text
)
66
#
define
QDOC_PROPERTY
(
text
)
QT_ANNOTATE_CLASS
(
qt_qdoc_property
,
text
)
67
#
if
QT_DEPRECATED_SINCE
(
6
,
12
)
68
#
define
Q_ENUMS
(
x
)
QT_ANNOTATE_CLASS
(
qt_enums
,
x
)
69
QT_DEPRECATED_MACRO_6_12(Q_ENUMS,
"Use Q_ENUM instead."
)
70
#
define
Q_FLAGS
(
x
)
QT_ANNOTATE_CLASS
(
qt_enums
,
x
)
71
QT_DEPRECATED_MACRO_6_12(Q_FLAGS,
"Use Q_FLAG instead."
)
72
#
endif
// QT_DEPRECATED_SINCE(6, 12)
73
#
define
Q_ENUM_IMPL
(
ENUM
)
74
friend
constexpr
const
QMetaObject
*
qt_getEnumMetaObject
(
ENUM
)
noexcept
{
return
&
staticMetaObject
;
}
75
friend
constexpr
const
char
*
qt_getEnumName
(
ENUM
)
noexcept
{
return
#
ENUM
;
}
76
#
define
Q_ENUM
(
x
)
QT_ANNOTATE_CLASS
(
qt_enums
,
x
)
Q_ENUM_IMPL
(
x
)
77
#
define
Q_FLAG
(
x
)
QT_ANNOTATE_CLASS
(
qt_enums
,
x
)
Q_ENUM_IMPL
(
x
)
78
#
define
Q_ENUM_NS_IMPL
(
ENUM
)
79
inline
constexpr
const
QMetaObject
*
qt_getEnumMetaObject
(
ENUM
)
noexcept
{
return
&
staticMetaObject
;
}
80
inline
constexpr
const
char
*
qt_getEnumName
(
ENUM
)
noexcept
{
return
#
ENUM
;
}
81
#
define
Q_ENUM_NS
(
x
)
QT_ANNOTATE_CLASS
(
qt_enums
,
x
)
Q_ENUM_NS_IMPL
(
x
)
82
#
define
Q_FLAG_NS
(
x
)
QT_ANNOTATE_CLASS
(
qt_enums
,
x
)
Q_ENUM_NS_IMPL
(
x
)
83
#
define
Q_SCRIPTABLE
QT_ANNOTATE_FUNCTION
(
qt_scriptable
)
84
#
define
Q_INVOKABLE
QT_ANNOTATE_FUNCTION
(
qt_invokable
)
85
#
define
Q_SIGNAL
QT_ANNOTATE_FUNCTION
(
qt_signal
)
86
#
define
Q_SLOT
QT_ANNOTATE_FUNCTION
(
qt_slot
)
87
#
define
Q_MOC_INCLUDE
(
...
)
QT_ANNOTATE_CLASS
(
qt_moc_include
,
__VA_ARGS__
)
88
#
endif
// !QT_NO_META_MACROS
89
90
#
ifndef
QT_NO_TRANSLATION
91
// full set of tr functions
92
#
define
QT_TR_FUNCTIONS
93
static
inline
QString
tr
(
const
char
*
s
,
const
char
*
c
=
nullptr
,
int
n
=
-
1
)
94
{
return
staticMetaObject
.
tr
(
s
,
c
,
n
)
;
}
95
#
else
96
// inherit the ones from QObject
97
#
define
QT_TR_FUNCTIONS
98
#
endif
99
100
#
ifdef
Q_QDOC
101
#
define
QT_TR_FUNCTIONS
102
#
endif
103
104
#
if
defined
(
Q_CC_CLANG
)
105
#
if
Q_CC_CLANG
>=
1100
106
#
define
Q_OBJECT_NO_OVERRIDE_WARNING
QT_WARNING_DISABLE_CLANG
(
"-Winconsistent-missing-override"
)
QT_WARNING_DISABLE_CLANG
(
"-Wsuggest-override"
)
107
#
elif
Q_CC_CLANG
>=
306
108
#
define
Q_OBJECT_NO_OVERRIDE_WARNING
QT_WARNING_DISABLE_CLANG
(
"-Winconsistent-missing-override"
)
109
#
endif
110
#
elif
defined
(
Q_CC_GNU
)
&&
Q_CC_GNU
>=
501
111
#
define
Q_OBJECT_NO_OVERRIDE_WARNING
QT_WARNING_DISABLE_GCC
(
"-Wsuggest-override"
)
112
#
elif
defined
(
Q_CC_MSVC
)
113
#
define
Q_OBJECT_NO_OVERRIDE_WARNING
QT_WARNING_DISABLE_MSVC
(
26433
)
114
#
else
115
#
define
Q_OBJECT_NO_OVERRIDE_WARNING
116
#
endif
117
118
#
if
defined
(
Q_CC_GNU
)
&&
Q_CC_GNU
>=
600
119
#
define
Q_OBJECT_NO_ATTRIBUTES_WARNING
QT_WARNING_DISABLE_GCC
(
"-Wattributes"
)
120
#
else
121
#
define
Q_OBJECT_NO_ATTRIBUTES_WARNING
122
#
endif
123
124
#
define
QT_META_OBJECT_VARS
125
template
<
typename
>
static
constexpr
auto
qt_create_metaobjectdata
(
)
;
126
template
<
typename
MetaObjectTagType
>
static
constexpr
inline
auto
127
qt_staticMetaObjectContent
=
qt_create_metaobjectdata
<
MetaObjectTagType
>
(
)
;
128
template
<
typename
MetaObjectTagType
>
static
constexpr
inline
auto
129
qt_staticMetaObjectStaticContent
=
qt_staticMetaObjectContent
<
MetaObjectTagType
>
.
staticData
;
130
template
<
typename
MetaObjectTagType
>
static
constexpr
inline
auto
131
qt_staticMetaObjectRelocatingContent
=
qt_staticMetaObjectContent
<
MetaObjectTagType
>
.
relocatingData
;
132
133
#
define
QT_OBJECT_GADGET_COMMON
134
QT_META_OBJECT_VARS
135
Q_OBJECT_NO_ATTRIBUTES_WARNING
136
Q_DECL_HIDDEN
static
void
qt_static_metacall
(
QObject
*
,
QMetaObject
::
Call
,
int
,
void
*
*
)
;
137
138
/* qmake ignore Q_OBJECT */
139
#
define
Q_OBJECT
public
140
:
141
QT_WARNING_PUSH
142
Q_OBJECT_NO_OVERRIDE_WARNING
143
static
const
QMetaObject
staticMetaObject
;
144
virtual
const
QMetaObject
*
metaObject
(
)
const
;
145
virtual
void
*
qt_metacast
(
const
char
*
)
;
146
virtual
int
qt_metacall
(
QMetaObject
::
Call
,
int
,
void
*
*
)
;
147
QT_TR_FUNCTIONS
private
148
:
149
QT_OBJECT_GADGET_COMMON
150
QT_DEFINE_TAG_STRUCT
(
QPrivateSignal
)
;
151
QT_WARNING_POP
152
QT_ANNOTATE_CLASS
(
qt_qobject
,
""
)
153
154
/* qmake ignore Q_OBJECT */
155
#
define
Q_OBJECT_FAKE
Q_OBJECT
QT_ANNOTATE_CLASS
(
qt_fake
,
""
)
156
157
#
ifndef
QT_NO_META_MACROS
158
/* qmake ignore Q_GADGET_EXPORT */
159
#
define
Q_GADGET_EXPORT
(
...
)
public
160
:
161
static
__VA_ARGS__
const
QMetaObject
staticMetaObject
;
162
void
qt_check_for_QGADGET_macro
(
)
;
163
typedef
void
QtGadgetHelper
;
private
164
:
165
QT_WARNING_PUSH
166
QT_OBJECT_GADGET_COMMON
167
QT_WARNING_POP
168
QT_ANNOTATE_CLASS
(
qt_qgadget
,
""
)
169
/*end*/
170
171
/* qmake ignore Q_GADGET */
172
#
define
Q_GADGET
Q_GADGET_EXPORT
(
)
173
174
/* qmake ignore Q_NAMESPACE_EXPORT */
175
#
define
Q_NAMESPACE_EXPORT
(
...
)
176
extern
__VA_ARGS__
const
QMetaObject
staticMetaObject
;
177
template
<
typename
>
static
constexpr
auto
qt_create_metaobjectdata
(
)
;
178
QT_ANNOTATE_CLASS
(
qt_qnamespace
,
""
)
179
/*end*/
180
181
/* qmake ignore Q_NAMESPACE */
182
#
define
Q_NAMESPACE
Q_NAMESPACE_EXPORT
(
)
183
/*end*/
184
185
#
endif
// !QT_NO_META_MACROS
186
187
#
else
// Q_MOC_RUN
188
#
define
slots
slots
189
#
define
signals
signals
190
#
define
Q_SLOTS
Q_SLOTS
191
#
define
Q_SIGNALS
Q_SIGNALS
192
#
define
Q_CLASSINFO
(
name
,
value
)
Q_CLASSINFO
(
name
,
value
)
193
#
define
Q_INTERFACES
(
x
)
Q_INTERFACES
(
x
)
194
#
define
Q_PROPERTY
(
text
)
Q_PROPERTY
(
text
)
195
#
define
Q_PRIVATE_PROPERTY
(
d
,
text
)
Q_PRIVATE_PROPERTY
(
d
,
text
)
196
#
define
Q_REVISION
(
...
)
Q_REVISION
(
__VA_ARGS__
)
197
#
define
Q_OVERRIDE
(
text
)
Q_OVERRIDE
(
text
)
198
#
define
Q_ENUMS
(
x
)
Q_ENUMS
(
x
)
199
#
define
Q_FLAGS
(
x
)
Q_FLAGS
(
x
)
200
#
define
Q_ENUM
(
x
)
Q_ENUM
(
x
)
201
#
define
Q_FLAG
(
x
)
Q_FLAG
(
x
)
202
#
define
Q_ENUM_NS
(
x
)
Q_ENUM_NS
(
x
)
203
#
define
Q_FLAG_NS
(
x
)
Q_FLAG_NS
(
x
)
204
/* qmake ignore Q_OBJECT */
205
#
define
Q_OBJECT
Q_OBJECT
206
/* qmake ignore Q_OBJECT */
207
#
define
Q_OBJECT_FAKE
Q_OBJECT_FAKE
208
/* qmake ignore Q_GADGET */
209
#
define
Q_GADGET
Q_GADGET
210
#
define
Q_SCRIPTABLE
Q_SCRIPTABLE
211
#
define
Q_INVOKABLE
Q_INVOKABLE
212
#
define
Q_SIGNAL
Q_SIGNAL
213
#
define
Q_SLOT
Q_SLOT
214
#
endif
//Q_MOC_RUN
215
216
QT_END_NAMESPACE
217
218
#
endif
// QTMETAMACROS_H
QDistanceJoint
Definition
qdistancejoint_p.h:31
QFlexibleJoint
Definition
qflexiblejoint_p.h:24
QList
Definition
qlist.h:82
QPhysicsJoint
Definition
qjoint_p.h:41
physx::PxTransformT
Definition
qabstractphysicsnode_p.h:27
QQmlPrivate
Definition
qv4compileddata_p.h:67
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
physx
Definition
qphysxactorbody_p.h:22
QML_UNCREATABLE
#define QML_UNCREATABLE(REASON)
Definition
qqmlintegration.h:69
QML_PRIVATE_NAMESPACE
#define QML_PRIVATE_NAMESPACE
Definition
qqmlintegration.h:39
QML_NAMED_ELEMENT
#define QML_NAMED_ELEMENT(NAME)
Definition
qqmlintegration.h:66
qmlRegisterTypesAndRevisions
void qmlRegisterTypesAndRevisions(const char *uri, int versionMajor, QList< int > *qmlTypeIds=nullptr)
Definition
qqml.h:939
QML_FOREIGN
#define QML_FOREIGN(FOREIGN_TYPE)
Definition
qqmlintegration.h:152
QT_BEGIN_NAMESPACE
#define QT_BEGIN_NAMESPACE
Definition
qtconfigmacros.h:161
QT_END_NAMESPACE
#define QT_END_NAMESPACE
Definition
qtconfigmacros.h:162
QT_ANNOTATE_FUNCTION
#define QT_ANNOTATE_FUNCTION(x)
Definition
qtmetamacros.h:29
QT_ANNOTATE_CLASS2
#define QT_ANNOTATE_CLASS2(type, a1, a2)
Definition
qtmetamacros.h:26
Q_PROPERTY
#define Q_PROPERTY(...)
Definition
qtmetamacros.h:60
Q_GADGET_EXPORT
#define Q_GADGET_EXPORT(...)
Definition
qtmetamacros.h:159
Q_OBJECT
#define Q_OBJECT
Definition
qtmetamacros.h:139
Q_REVISION
#define Q_REVISION(...)
Definition
qtmetamacros.h:63
Q_CLASSINFO
#define Q_CLASSINFO(name, value)
Definition
qtmetamacros.h:56
QT_ANNOTATE_CLASS
#define QT_ANNOTATE_CLASS(type,...)
Definition
qtmetamacros.h:23
Q_OBJECT_NO_ATTRIBUTES_WARNING
#define Q_OBJECT_NO_ATTRIBUTES_WARNING
Definition
qtmetamacros.h:121
QT_META_OBJECT_VARS
#define QT_META_OBJECT_VARS
Definition
qtmetamacros.h:124
Q_INTERFACES
#define Q_INTERFACES(x)
Definition
qtmetamacros.h:59
QT_TR_FUNCTIONS
#define QT_TR_FUNCTIONS
Definition
qtmetamacros.h:92
QT_ANNOTATE_ACCESS_SPECIFIER
#define QT_ANNOTATE_ACCESS_SPECIFIER(x)
Definition
qtmetamacros.h:32
QT_OBJECT_GADGET_COMMON
#define QT_OBJECT_GADGET_COMMON
Definition
qtmetamacros.h:133
Q_SLOTS
#define Q_SLOTS
Definition
qtmetamacros.h:48
Q_OBJECT_NO_OVERRIDE_WARNING
#define Q_OBJECT_NO_OVERRIDE_WARNING
Definition
qtmetamacros.h:115
signals
#define signals
Definition
qtmetamacros.h:45
Q_SIGNALS
#define Q_SIGNALS
Definition
qtmetamacros.h:49
Q_ENUM_IMPL
#define Q_ENUM_IMPL(ENUM)
Definition
qtmetamacros.h:73
Q_ENUM_NS_IMPL
#define Q_ENUM_NS_IMPL(ENUM)
Definition
qtmetamacros.h:78
emit
#define emit
Definition
qtmetamacros.h:53
Q_NAMESPACE_EXPORT
#define Q_NAMESPACE_EXPORT(...)
Definition
qtmetamacros.h:175
QQmlPrivate::QmlAnonymous
Definition
qqmlprivate.h:1030
QQmlPrivate::QmlAttachedAccessor
Definition
qqmlprivate.h:451
QQmlPrivate::QmlAttached
Definition
qqmlprivate.h:387
QQmlPrivate::QmlExtendedNamespace
Definition
qqmlprivate.h:988
QQmlPrivate::QmlExtended
Definition
qqmlprivate.h:968
QQmlPrivate::QmlInterface
Definition
qqmlprivate.h:1090
QQmlPrivate::QmlResolved
Definition
qqmlprivate.h:1012
QQmlPrivate::QmlSequence
Definition
qqmlprivate.h:1066
QQmlPrivate::QmlSingleton
Definition
qqmlprivate.h:1048
QQmlPrivate::QmlUncreatable
Definition
qqmlprivate.h:171
qtbase
src
corelib
kernel
qtmetamacros.h
Generated on
for Qt by
1.18.0