Qt 5.6 Released for Long Term Support

May 04, 2016 By justin bauer

I've been using Qt QML for a few years now since Qt5.2 was released. It took me a long time to get the components working properly and looking nice and I feel that it has been worth the trouble. I've been impressed with the built-in touch features (scroll, swipe, animation, fade in/out) that Qt delivers flawlessly with no effort on my end to get it working. I use the eglfs backend mainly because I work on embedded systems with a limited CPU, plus I've seen my same Qt app show signs of tearing in X11 due to the fact X11 doesn't provide any double-buffering nor VSYNC to stop the problem.

Some of the highlights that I am looking forward to using in 5.6:

  1. Guaranteed back-ported bug fixes for 3 years

    • This is a huge deal for me since some of the products I work on last in the field for 5+ years where upgrading their version of Qt is a major ordeal and has to go through a lot of management sign-offs. The ability to keep one stable version of Qt and provide periodic patches is nice to have.
  2. Qt Labs Controls

    • Some of these sleek controls look AWESOME. I've already been rolling my own similar controls for the time being, but it will be nice to migrate to something cleaner and supported officially rather than my conglomerate of rectangles that mimic a slider.
  3. Qt SerialBus

    • Most embedded devices communicate via the serial port to another embedded microcontroller. Having the ability to also talk to numerous devices on the CAN bus opens some doors.
  4. Charts are now FREE

    • Qt QML Charts used to be closed source and only available with a subscription. Now they are free to the community edition. I don't use any graphs in my projects since they were previously not usable, but perhaps I'll find an excuse to use them.

Boot to Qt software stack

This looks cool and all, but is worth the high cost of a monthly subscription? The problem I've always seen with these easy, hand-holding setups is that they get me up and running with their default platform fast, but as soon as I go outside of their sandbox, it gets super complicated. I like to point out Reach Technology as an example. They make touchscreens based on Freescale's (now NXP) iMX6 processors. Their key selling point is how easy it is to get up and running and its true! Sending data back and forth between your touch screen and embedded device is easy....if you play nice within their ecosystem! Customizing your build environment, modifying startup scripts, changing touch drivers for increased sensitivity, mounting USB devices, etc, will cause headaches and can only be solved with frequent contact with their developers. Contrast this company mentality with Technologic Systems. If you compare their wiki documentation with Reach Technologies, you should notice that these companies target a different audience. Technologic systems provides a "bare-bone" system with some generic yocto filesystem to get you started. It really sucked getting up to speed with their tools, but has paid off greatly in terms of flexibility and speed. I see myself applying this lesson to Qt's preconfigured software stack.

Qt Multimedia with eglfs

I'm still awaiting the bug fix to allow QML video playback on the eglfs backend. QTBUG-47284 has been sitting around since Qt5.4 with no resolution. A quick check on the 5.7 branch sources show that it still hasn't been fixed. Has anyone else been able to play video in QML using eglfs? It looks like the only way is to use XCB (X11), which kinda sucks on an embedded device.

Final Thoughts

Now that Xamarin has expanded their free version in hopes of garnishing the mobile market share, I wonder how Qt will fare when it comes to mobile. Being able to use Qt on industrial touch screens has made the stuff I work on look light years more modern than what competitors clobber together with their PLC WYSIWYG builders.

Comments