[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