3 ms·
Tangential Qt rant: After having worked with Qt (QML) on a daily basis (and quite in-depth, from using the scenegraph api to creating controls that with comple
by ghosty141 2y ago
Tangential Qt rant:
After having worked with Qt (QML) on a daily basis (and quite in-depth, from using the scenegraph api to creating controls that with complex touch interfacing) I have to say I wouldn't pay a dime for the stuff you get with Qt. And even what they sell is almost never even close to worth it.
The underlying technology is pretty good, so the Qv4 engine, the OS-abstractions (sockets, networking etc) and so on. But all the library code ontop can be very hit or miss.
For example, they introduced new ways of handling touch events (DragHandler, TapHanderl, PinchHandler etc. etc.) which work GREAT! But they lack any way to stop propagation of events leading to them becoming utterly unusable if you have any custom "popup" things. There are also a lot of bugs with them which haven't gotten fixed in years even though they cannot be worked around. Paying for the product doesn't seem to even get you any further in that regard.
Using the open source Qt is the best option in my opinion, worst case you buy support sessions to adress specific problems but that's about it.
- dubcanada 2y agoI mean every UI software, even the ones built into the different OS's has bugs like these. So what is the alternative? Throw Chromium into the code and build the UI with HTML and C++ backend? JUCE or some other UI package? There really is not a ton of other options. I think for most companies, paying for QT and maybe a few extra for bug fixes as needed makes sense. And lets you tone down the hardware expenses that say Chromium would require.
- ghosty141 2y agoIt obviously depends on your needs, if your software needs complex controls, responsive layouting and tries to achieve a smartphone-type UI, then yes I using chromium is the way to go with a c++ backend that does the heavy lifting. Qt has a big advantage if your content is rather static and you can just top-down layout everything via anchors and rather fixed positions. But in those cases you also generally don't use complex controls that layer ontop of each other. In my opinion it should be communicated quite clearly that QML is very good for "small" embedded UIs like for general home appliances, but if you are planning to create a rather complex application with demands like responsive layouting, custom data structures, interfacing with existing apis, then you far better off just using chromium with a custom backend. That has far less UI-breaking bugs. Qt accidentally COMPLETELY broke lighting in Qt3d: https://bugreports.qt.io/browse/QTBUG-100402 https://bugreports.qt.io/browse/QTBUG-100402 That's something I find completely unacceptable and I haven't encountered something that application-breaking in chromium (yet).
- zerr 2y agoOr just use Qt Widgets? Yes, the default sizes and styling might not be suitable but these are easily and fully customizable. The one disadvantage is that Widgets is not hardware accelerated.
- ghosty141 2y agoWidgets seem far more robust and tested but from what I‘ve gathered pretty suboptimal for touch-first UIs and more modern design. For the desktop I would 100% use Widgets over QML.
- lukeh 2y agoFlutter is another option for embedded.
- joezydeco 2y agoGoogle continually lets the embedded community down. You can promise this time won't be the same, but I don't trust them anymore.
- tempcommenttt 2y agoIf youre a python dev, pygame is an often overlooked option, it’s quite nice if you're targeting a specific screen resolution. I’m using it in production….
- pjmlp 2y agoThat is why we can't have nice things, eventually developers decide there are better ways to make a living than contributing to products no one gives back, and there is a mortgage to pay.