[Interest] Qt 6.5.2 and qmllint questions/issues
Ulf Hermann
ulf.hermann at qt.io
Thu Aug 31 21:49:00 CEST 2023
> void AddLogger(const QString& name, QObject* logger, QQmlContext*
> context)
> {
> logger->setParent(context);
> QQmlEngine::setContextForObject(logger, context);
> context->setContextProperty(name, logger);
> }
This is actually not a JavaScript global, but a context property.
Context properties are even worse from the perspective of analysis ahead
of time. They don't even apply to all code, but only to the objects that
happen to live in the context you've chosen. A side effect of this is
that your QML code is not usable outside of such specific contexts. You
can't give your QML file to someone else and have them integrate it
into a different program because your QML file makes implicit
assumptions about its context. So, your QML components are in fact not
re-usable.
It's much better to openly declare your assumptions using imports. Then
the receiver of the QML file at least has a chance to track down the
dependencies.
best regards,
Ulf Hermann
More information about the Interest
mailing list