Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qqmlcomponent.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QQMLCOMPONENT_H
5#define QQMLCOMPONENT_H
6
7#include <QtCore/qvariant.h>
8#include <QtCore/qmap.h>
9
10#include <QtQml/qqml.h>
11#include <QtQml/qqmlerror.h>
12
13#include <QtCore/qobject.h>
14#include <QtCore/qstring.h>
15#include <QtQml/qjsvalue.h>
16
18
19
20class QByteArray;
21class QQmlEngine;
22class QQmlComponent;
23class QQmlIncubator;
26
27namespace QV4 {
28class ExecutableCompilationUnit;
29}
30
31class Q_QML_EXPORT QQmlComponent : public QObject
32{
34 Q_DECLARE_PRIVATE(QQmlComponent)
35
36 Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged)
37 Q_PROPERTY(Status status READ status NOTIFY statusChanged)
38 Q_PROPERTY(QUrl url READ url CONSTANT)
39
40public:
41 enum CompilationMode { PreferSynchronous, Asynchronous };
42 Q_ENUM(CompilationMode)
43
44 QQmlComponent(QObject *parent = nullptr);
45 QQmlComponent(QQmlEngine *, QObject *parent = nullptr);
46 QQmlComponent(QQmlEngine *, const QString &fileName, QObject *parent = nullptr);
47 QQmlComponent(QQmlEngine *, const QString &fileName, CompilationMode mode, QObject *parent = nullptr);
48 QQmlComponent(QQmlEngine *, const QUrl &url, QObject *parent = nullptr);
49 QQmlComponent(QQmlEngine *, const QUrl &url, CompilationMode mode, QObject *parent = nullptr);
50
52 explicit QQmlComponent(QQmlEngine *engine, QAnyStringView uri, QAnyStringView typeName, CompilationMode mode, QObject *parent = nullptr);
53
54 ~QQmlComponent() override;
55
56 enum Status { Null, Ready, Loading, Error };
57 Q_ENUM(Status)
58 Status status() const;
59
60 bool isNull() const;
61 bool isReady() const;
62 bool isError() const;
63 bool isLoading() const;
64
65 bool isBound() const;
66
67 QList<QQmlError> errors() const;
68 Q_INVOKABLE QString errorString() const;
69
70 qreal progress() const;
71
72 QUrl url() const;
73
74 virtual QObject *create(QQmlContext *context = nullptr);
75 QObject *createWithInitialProperties(const QVariantMap& initialProperties, QQmlContext *context = nullptr);
76 void setInitialProperties(QObject *component, const QVariantMap &properties);
77 virtual QObject *beginCreate(QQmlContext *);
78 virtual void completeCreate();
79
80 void create(QQmlIncubator &, QQmlContext *context = nullptr,
81 QQmlContext *forContext = nullptr);
82
83 QQmlContext *creationContext() const;
84 QQmlEngine *engine() const;
85
86 static QQmlComponentAttached *qmlAttachedProperties(QObject *);
87
88public Q_SLOTS:
89 void loadUrl(const QUrl &url);
90 void loadUrl(const QUrl &url, CompilationMode mode);
91 void loadFromModule(QAnyStringView uri, QAnyStringView typeName,
92 QQmlComponent::CompilationMode mode = PreferSynchronous);
93 void setData(const QByteArray &, const QUrl &baseUrl);
94
98
99protected:
101
102#if QT_DEPRECATED_SINCE(6, 3)
103 QT_DEPRECATED_X("Use the overload with proper arguments")
104 Q_INVOKABLE void createObject(QQmlV4FunctionPtr);
105#endif
106
107 Q_INVOKABLE QObject *createObject(
108 QObject *parent = nullptr, const QVariantMap &properties = {});
109 Q_INVOKABLE void incubateObject(QQmlV4FunctionPtr);
110
111private:
113 QObject *parent);
114
115 Q_DISABLE_COPY(QQmlComponent)
116 friend class QQmlTypeData;
117 friend class QQmlObjectCreator;
118};
119
120
121// Don't do this at home.
122namespace QQmlPrivate {
123
124// Generally you cannot use QQmlComponentAttached as attached properties object in derived classes.
125// It is private.
126template<class T>
131
132// QQmlComponent itself is allowed to use QQmlComponentAttached, though.
133template<>
138
139} // namespace QQmlPrivate
140
142
143#endif // QQMLCOMPONENT_H
\inmodule QtCore
\inmodule QtCore
Definition qbytearray.h:57
\inmodule QtCore
Definition qobject.h:103
The QQmlComponent class encapsulates a QML component definition.
Status
\qmltype Component \instantiates QQmlComponent\inqmlmodule QtQml
CompilationMode
Specifies whether the QQmlComponent should load the component immediately, or asynchonously.
void progressChanged(qreal)
Emitted whenever the component's loading progress changes.
void statusChanged(QQmlComponent::Status)
Emitted whenever the component's status changes.
The QQmlContext class defines a context within a QML engine.
Definition qqmlcontext.h:25
The QQmlEngine class provides an environment for instantiating QML components.
Definition qqmlengine.h:57
The QQmlIncubator class allows QML objects to be created asynchronously.
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
\inmodule QtCore
Definition qurl.h:94
void statusChanged(QQmlComponent::Status status)
[1]
Definition qlogging.cpp:11
Combined button and popup list for selecting options.
static void * context
static const QCssKnownValue properties[NumProperties - 1]
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
const char * typeName
GLenum mode
static qreal component(const QPointF &point, unsigned int i)
#define QT_DEPRECATED_X(text)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_INVOKABLE
#define Q_SLOTS
#define Q_SIGNALS
double qreal
Definition qtypes.h:187
QUrl url("example.com")
[constructor-url-reference]
QUrl baseUrl
mimeData setData("text/csv", csvData)
view create()
QJSEngine engine
[0]
Definition moc.h:23