34 Q_DECLARE_PRIVATE(QQmlComponent)
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)
41 enum CompilationMode { PreferSynchronous, Asynchronous };
42 Q_ENUM(CompilationMode)
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);
51 explicit QQmlComponent(QQmlEngine *engine, QAnyStringView uri, QAnyStringView typeName, QObject *parent =
nullptr);
52 explicit QQmlComponent(QQmlEngine *engine, QAnyStringView uri, QAnyStringView typeName, CompilationMode mode, QObject *parent =
nullptr);
54 ~QQmlComponent() override;
56 enum Status { Null, Ready, Loading, Error };
58 Status status()
const;
63 bool isLoading()
const;
67 QList<QQmlError> errors()
const;
68 Q_INVOKABLE QString errorString()
const;
70 qreal progress()
const;
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();
80 void create(QQmlIncubator &, QQmlContext *context =
nullptr,
81 QQmlContext *forContext =
nullptr);
83 QQmlContext *creationContext()
const;
84 QQmlEngine *engine()
const;
86 static QQmlComponentAttached *qmlAttachedProperties(QObject *);
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);
96 void statusChanged(QQmlComponent::Status);
97 void progressChanged(qreal);
100 QQmlComponent(QQmlComponentPrivate &dd, QObject* parent);
102#if QT_DEPRECATED_SINCE(6
, 3
)
103 QT_DEPRECATED_X(
"Use the overload with proper arguments")
104 Q_INVOKABLE
void createObject(QQmlV4FunctionPtr);
107 Q_INVOKABLE QObject *createObject(
108 QObject *parent =
nullptr,
const QVariantMap &properties = {});
109 Q_INVOKABLE
void incubateObject(QQmlV4FunctionPtr);
112 QQmlComponent(QQmlEngine *, QV4::ExecutableCompilationUnit *compilationUnit,
int,
115 Q_DISABLE_COPY(QQmlComponent)
116 friend class QQmlTypeData;
117 friend class QQmlObjectCreator;