[Interest] QML singleton properties are undefined if file placed in subdirectory

Ulf Hermann ulf.hermann at qt.io
Tue Mar 7 12:54:21 CET 2023


> Qt 6.4.2 QML singleton's properties undefined if singleton QML file 
> placed in subdirectory e.g "/qml" (${CMAKE_SOURCE_DIR}/qml/Style.qml)

You should not place your QML files in a different directory than the 
module (as denoted by the generated qmldir file). Otherwise their 
implicit import is not the same as the module they belong to, which then 
leads to effects like this.

The implicit import is the way you can use QML components placed in .qml 
files in the same directory without importing anything.

The component in question is a singleton in the module since it has a 
"singleton" line in the qmldir. It is, however, a regular non-singleton 
component in the implicit import since the implicit import does not see 
the qmldir.

You can move the whole QML module into the "qml" subdirectory and add 
".qml" to the URI to avoid this. Or you can move all the .qml files into 
the base directory of the module.

best regards,
Ulf


More information about the Interest mailing list