Hi Mike,
in the meantime I made some progress and got my projects (with QML and CPP files organized in subdirectories) working without NO_RESOURCE_TARGET_PATH :)
Also QML_ELEMENT is working, only QT_QML_SINGLETON_TYPE isn't yet.
more details: https://bugreports.qt.io/browse/QTBUG-111763
next topic: looking for a way to refactor ContextProperties into QML_SINGLETON with c++ ownership
so step-by-step ;-)
ekke

Am 18.02.24 um 14:07 schrieb ekke:
Hi Mike,
thanks for your great answer.
I can second your advices.
ekke

Am 17.02.24 um 01:00 schrieb Mike Trahearn via Interest:
My second advice is more for Ulf - despite your best efforts to educate people in how QML modules have changed the way we should think about our QML organisation since Qt 5, people still have trouble grasping these points:

a) what is a QML module anyway? You say whaaaat? Yes, people are still on Qt5 with a Qt5 mindset. It took me ages to work out how to retrain my thinking - and it does for others too. But I would add it is well worth it and does make life a lot easier when you set it up. Alexandra Betouni's recent #QtStories article leans into exactly this point (it's a great read and I absolutely echo her observations and sentiments).

b) the thing Ulf and I spoke about in Berlin, which was the very basic fundamental structure of a relatively simple app where all the modules are defined under the "recommended" structure which is guaranteed to work without any fiddling. This is a great starting point for learners, new projects and so on. However...

c) For many people, like those here, are not starting from an ideal place of legacy and in Ulf's words, already using and relying on "degenerate modules".

While this is unfortunate, it happens and Qt5 allowed that to happen. So when we move things to Qt6 we have a number of steps to consider.

1) moving to CMake
2) formally defining the QML modules in CMake
3) fixing all the QML so it works within the rules
4) going back to CMake to fix the module definitions according to the *allowed* additional properties having considered their exacting requirements and rationale.

This has been my own experience so I know what I'm talking about and understand both the pain and the frustration and have vented myself at "why doesn't it work like I expect" and poor Ulf has copped my wrath on more than on occasion. However, I am educated now and we are still friends.

d) Ulf write a great little blog series about QML Modules back around Qt6.2. But when you look at those now, some of the information there is dated although the principles are sound.

So Ulf, with your inimitable fashion of freely advising not to use foot guns and with your unique sense of humour, would you be prepared to write an updated blog - yay verily may I suggest work with Ash Walton and get it up on the Qt Academy? I would suggest and recommend it as absolute mandatory reading for anyone. I'd even go as far to say "did you do that course" as a first response.

There would be some simple steps to cover based on just reworking that blog series:

1 - how it used to be in Qt5 (and why it needed to change)
2 - What is a QML module
3 - Plugin and Backing targets (most confusing for some) and when to link to what given static or shared configurations
4 - simple application structure
5 - a nod to the resource prefix and the new load component main.cpp bootstrap. 6 - a reasoned example (image provider) where you have to use one of the NO options and how a "do it yourself" plugin class looks like.and works in practice. 7 - alternative workarounds for where your source structure cannot match the default expected structure, but how to at least exchange bullets for liquorice in your foot gun if you have to (like me - I don't like the taste, but I don't eat with my feet). 8 - the code model is gleaned from the build folder NOT the source folder.
9 - you don't need to write qmldir or qmltypes
10 - how to declare singletons and internal types.
11 - if you are feeling sadistic you could also cover singletons and ownership but don't be cruel.

There's obviously scope for breaking this up into a learning path with several short courses inside building on the last.

I really think this would be gold in the hands of the reader in helping them get past this quite large code and paradigm change into a world of much more power, flexibility and productivity.

I do hope you get your project into the shape you need. It does sound likeĀ  but of a pickle at the moment but it is not going to be difficult to get you straight so do not fear or get frustrated.

We will get you there!



_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to