"Anything that's non-trivial ends up with (a) huge boilerplate wrapper(s)."

Q_INVOKABLE, Q_PROPERTY, etc... The Qt stuff crawls into what would otherwise be just business logic because you need to access something.

I've linked this before: https://stackoverflow.com/questions/66618613/qml-c-classes-with-bring-your-own-component

Which again, is absolutely trivial do to with C++ and polymorphism. And a pointer/reference instead of adding macros in 20 places  and the Q_PROPERTY lines...

Basically we're coupling the whole backend to the GUI framework.

I'd prefer to write C++ than to learn Loaders and whatever else there is... But seems that people do love QML a lot (again, shouts out to KDE).

Opinions, I guess.

Rui

Em 22/04/2021 15:37, Konstantin Shegunov escreveu:
On Thu, Apr 22, 2021 at 4:59 PM Jérôme Godbout <godbo...@amotus.ca <mailto:godbo...@amotus.ca>> wrote:

    I wonder if it would be possible to totally declare the QtQuick
    scene from C++ without any Qml files actually, with Qt6 you got
    C++ binding and the Qml is compiled to C++ anyway. Maybe I miss
    something but it could be possible to actually only write C++ to
    create the actual scene?!


It will have been (even in Qt5) if the classes were public. In the end the QML engine is really a glorified object factory. There are other problems with that though, one such example is the tree control: GPL/Commercial for QtQuick, while with widgets you get that directly with the same license as the whole library (there are other such cases too, if I'm not mistaken) ... and the mentioned already "native" look'n'feel.

    I would not actually do this myself but it might attract some user
    that are scare of declarative


Many of us avoid it not because we are 'scared' as such, but because of other more practically-relevant reasons.

    I stop using QWidgets a few years ago and I don’t miss it a bit,
    haven’t seen anything I could not achieved into Qml yet, some are
    a bit trickier than they should but in the end prototyping and
    modifying the GUI is so quick, I often make the change live when
    I’m working with my graphic designer and KDAB GammaRay (just need
    to apply those change after).


Well, I can build a nuclear power plant at home - probably I can achieve it, but the fact of the matter is, should I? There are a couple of considerations here. Firstly a lot of code is already written with the widgets and even with best practices it's generally not trivial to do a 'face-lift'. Secondly, QML fails to sell its point to desktop devs due to its C++ integration being a great PITA already. Anything that's non-trivial ends up with (a) huge boilerplate wrapper(s). And while graphics performance does matter, it's not typically the driving force on desktop, where usually we value convenience over performance (on desktop you rarely are pressed for resources). In fairness, exposing the property bindings natively to C++ is a step, no doubt about it.

_______________________________________________
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