7 ms·
QML is Qts innovation. The declarative way to write a UI is unmatched IMHO when comparing to Unreal, Godot or the Web. Still, QML has a _lot_ of other little pr
by Kelteseth 4y ago
QML is Qts innovation. The declarative way to write a UI is unmatched IMHO when comparing to Unreal, Godot or the Web. Still, QML has a _lot_ of other little problems like bad tooling (no autoreload, unusable designer) and often broken type system where you can assign invalid properties, and it will silently fail.
- joezydeco 4y agoIf by "silently fail" you mean "entire segments of your UI disappearing" then yes.
- eql5 4y agoAutoreload can be added quite easily, like in this Lisp binding, which has an example where even single file autoreload works, both on desktop and mobile, simultaneously: https://gitlab.com/eql/lqml https://gitlab.com/eql/lqml https://gitlab.com/eql/lqml/-/tree/master/examples/advanced-qml-auto-reload https://gitlab.com/eql/lqml/-/tree/master/examples/advanced-...
- enqk 4y agoIt's also not truly declarative since you can observe ordering (and therefore your app may silently depend on imperative execution) There's also performance issues with large amount of code, and last I checked, Qml doesn't really mix well with the traditional Qt widget and protocols (i.e. sometimes things are reimplemted in Qml under similar names, but with different behaviors)
- mariusmg 4y ago>QML is Qts innovation. The declarative way to write a UI is unmatched when comparing to...the Web What? Isn't HTML the daddy of declarative languages for UI ?
- nyanpasu64 4y agoQML on the desktop is highly buggy. The menu bar doesn't close when you click on other windows (even after 10 years), it took a decade to create a half-decent Qt Quick Controls 2 file dialog, there were multiple tab order bugs where pressing Tab hung the app (in Qt Widgets it would instead highlight the wrong widget when you pressed Tab then Shift-Tab) and one of them was fixed after several years mere weeks ago (https://bugreports.qt.io/browse/QTBUG-87190 https://bugreports.qt.io/browse/QTBUG-87190), mouse scrolling (Flickable) works differently from Widgets (and scrolling twice quickly can travel 4 times the distance as scrolling once), on Android it drops frames even on a fairly high-end phone (Pixel 4a) and interactions feels uncanny-valley... I'm under the impression that you're almost not meant to use Qt Quick Controls 2, since KDE created their own Item hierarchy, rejecting Qt's own Flickable altogether.
- noahadavis 4y agoKDE still uses QQC2 and Flickable. However, we do workaround Flickable's deficiencies by filtering mouse wheel input on QQC2 ScrollViews and setting the content X/Y values so that it moves more like a view in Qt Widgets. It's not ideal. I hope one day I or someone else will be able to fix Flickable's behavior upstream.