Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I've always had that impression. I've been using Qt for 10+ years (professionally for half that) and I've always used QtWidgets. QML always seemed flimsy to me, and all those futuristic UIs... Not sure how they work with the c++ qt libs.


The core idea is kind of ok. But they screwed it up in a few ways:

1. Using Javascript. It's not a good language, especially without Typescript. And it's type system doesn't match C++'s well at all. For example you can't really pass uint64s to QML very easily. Apparently Javascript will be optional in 6.1.

2. The scene graph. A good idea but I'm pretty sure there's still no way to make custom QML widgets that contain text because there's still no public QSGTextNode (at least last time I looked into it). Here's people trying to do it in 2013: https://forum.qt.io/topic/24179/how-to-draw-text-in-qquickit...

I think they've pretty much given up on letting users make custom QML widgets - instead you have to use QPainter and it copies the resulting image across, which seems like a step backwards.

3. The encapsulation is really bad. I honestly never figured out the rules around widget ID scope because it seems like they are all in a global scope so all widgets can refer to any other widget (e.g. children can depend on their parents) which encourages spaghetti. Not sure if they're fixing this.

4. It's really hard to do transient widgets like dialogs. This is kind of the same as in React but it still seems like a step backwards from QtWidgets.

5. Lots of the QtQuick widgets are really lacking features compared to QtWidgets. It's like they got to the MVP and then gave up.

I haven't tried it for a number of years so some of those thing may have improved but I haven't heard about it. I get the impression that 90% of their income comes from car manufacturers using Qt for their software, which is why there is such a focus on fancy 3D UIs.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: