35 Q_DECLARE_PRIVATE(QQmlComponent)
37 Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged)
38 Q_PROPERTY(Status status READ status NOTIFY statusChanged)
39 Q_PROPERTY(QUrl url READ url CONSTANT)
42 enum CompilationMode { PreferSynchronous, Asynchronous };
43 Q_ENUM(CompilationMode)
45 QQmlComponent(QObject *parent =
nullptr);
46 QQmlComponent(QQmlEngine *, QObject *parent =
nullptr);
47 QQmlComponent(QQmlEngine *,
const QString &fileName, QObject *parent =
nullptr);
48 QQmlComponent(QQmlEngine *,
const QString &fileName, CompilationMode mode, QObject *parent =
nullptr);
49 QQmlComponent(QQmlEngine *,
const QUrl &url, QObject *parent =
nullptr);
50 QQmlComponent(QQmlEngine *,
const QUrl &url, CompilationMode mode, QObject *parent =
nullptr);
52 explicit QQmlComponent(QQmlEngine *engine, QAnyStringView uri, QAnyStringView typeName, QObject *parent =
nullptr);
53 explicit QQmlComponent(QQmlEngine *engine, QAnyStringView uri, QAnyStringView typeName, CompilationMode mode, QObject *parent =
nullptr);
55 ~QQmlComponent() override;
57 enum Status { Null, Ready, Loading, Error };
59 Status status()
const;
64 bool isLoading()
const;
68 QList<QQmlError> errors()
const;
69 Q_INVOKABLE QString errorString()
const;
71 qreal progress()
const;
75 virtual QObject *create(QQmlContext *context =
nullptr);
76 QObject *createWithInitialProperties(
const QVariantMap& initialProperties, QQmlContext *context =
nullptr);
77 void setInitialProperties(QObject *component,
const QVariantMap &properties);
78 virtual QObject *beginCreate(QQmlContext *);
79 virtual void completeCreate();
81 void create(QQmlIncubator &, QQmlContext *context =
nullptr,
82 QQmlContext *forContext =
nullptr);
84 QQmlContext *creationContext()
const;
85 QQmlEngine *engine()
const;
87 static QQmlComponentAttached *qmlAttachedProperties(QObject *);
90 void loadUrl(
const QUrl &url);
91 void loadUrl(
const QUrl &url, CompilationMode mode);
92 void loadFromModule(QAnyStringView uri, QAnyStringView typeName,
93 QQmlComponent::CompilationMode mode = PreferSynchronous);
94 void setData(
const QByteArray &,
const QUrl &baseUrl);
97 void statusChanged(QQmlComponent::Status);
98 void progressChanged(qreal);
101 QQmlComponent(QQmlComponentPrivate &dd, QObject* parent);
103#if QT_DEPRECATED_SINCE(6
, 3
)
104 QT_DEPRECATED_X(
"Use the overload with proper arguments")
105 Q_INVOKABLE
void createObject(QQmlV4FunctionPtr);
108 Q_INVOKABLE QObject *createObject(
109 QObject *parent =
nullptr,
const QVariantMap &properties = {});
110 Q_INVOKABLE
void incubateObject(QQmlV4FunctionPtr);
113 QQmlComponent(QQmlEngine *, QV4::ExecutableCompilationUnit *compilationUnit,
int,
116 Q_DISABLE_COPY(QQmlComponent)
117 friend class QQmlTypeData;
118 friend class QQmlObjectCreator;