12/14/2010

Qt framework for QNX: Not just a pretty interface

Before we go any further, let's get the pronunciation thing out of the way. Strictly speaking, Qt is pronounced "cute." But guess what: The minute you start saying things like "That device has 'cute' user interface" is the same minute people start looking at you funny. Hence, the pronunciation of choice has become, not surprisingly, "kyoo tee".

If you're new to Qt, the Qt community portal has a good, albeit prolix definition:

"Qt is a comprehensive C++ application development framework that includes a class library and tools for cross-platform development and internationalization. The intuitive Qt API and tools are consistent across all supported platforms, enabling platform-independent application development and deployment."

The definition on the Qt Development Frameworks website gets to the point a little quicker:

"Qt is a cross-platform application and UI framework. Using Qt, you can write web-enabled applications once and deploy them across desktop, mobile, and embedded operating systems without rewriting the source code."

This "write once, deploy across" feature is a key reason why many QNX customers, particularly those in the medical and industrial automation industries, show interest in Qt. Mind you, it's not the only reason. Qt's rich cross-platform C++ class library, running on the QNX Neutrino RTOS, also allows device makers to:
  • build advanced user interfaces from a rich set of standard and customizable GUI components
  • visualize data in 3D with a tight integration with OpenGL
  • increase designer & developer collaboration with Qt Quick, a complete UI creation kit
  • choose a license to fit project requirements
  • take advantage of the Qt ecosystem
  • leverage the reliability and real-time performance of the QNX Neutrino RTOS

From port to completed port
Qt Software, a Nokia subsidiary, first ported Qt to the QNX Neutrino RTOS in July 2009. QNX Software Systems plans to complete this port and quickly move up to latest release of Qt, v4.7. From what I understand, the new port will initially support ARM and Atom processors on Beagle boards and Kontron boards, respectively. Support for additional platforms will depend on customer interest.

Look ma, no C++
Qt 4.7 introduces a new feature, Qt Quick, that enhances Qt's capabilities and allows anyone familiar with scripting languages to create UIs and apps. With Qt Quick, you don't need to know C++. Instead, you can use QML, a JavaScript-based declarative language, to design your "UI centric" applications.

According to the Qt website, if you have experience with JavaScript, HTML, or CSS, you have the skills to learn QML. Practically speaking, this ease of access means that user-interface designers can work hand-in-hand with software developers to create animated, touch-enabled UIs.

A matter of choice
The QNX Neutrino RTOS already supports a choice of UI technologies, including Adobe Flash, OpenGL ES, and the QNX Photon microGUI. Support for Qt will add to this choice. In future posts, I will track the progress of Qt for the QNX Neutrino RTOS and provide some insight as to how it integrates with existing QNX graphics technologies and frameworks.

Until then, here's a video published to celebrate the initial port to QNX Neutrino back in 2009:

17 comments:

  1. I got a question. From what I gather, Qt is going to be the basis for Meego. At some point could one in theory write an app for Meego that would port over seamlessly to the PlayBook using QNX as the common ground?

    ReplyDelete
  2. I also have a question. Does this mean, QNX will move from Photon to Qt in some future? Because we all know that Photon and Application builder are little bit outdated.. and if don't want to use Flash or web-based UI, you get soon or later frustrated and look for something like Crank's Storyboard..

    ReplyDelete
  3. Mohammed Sameer12/17/10, 9:57 AM

    I too have a question. The "write once, deploy across" is what the X Window system is. I don't know much about Qt except that it has layers of libraries before a pixel is put on the screen. X Windows is I think faster and works across a network, though it needs more appealing aesthetics on the server side ( the display machine ). Also it can be made faster via replacing IPv4 with IPv6 and hardware-assisted packet-filtering. I though QNX will more look towards simplicity ( with
    X Windows ) rather than something which cannot be spoken with a straight face.

    ReplyDelete
  4. Qt for QNX was available all along through the Nokia community and all we are trying to do is to extend that support to the latest releases of Qt and QNX Neutrino SDP 6.5. In the process, we also fixed many of the known problems to complete the port.

    Qt and Photon are two different products and both serve different customer/market needs. What is Storyboard? :)

    Qt/QNX port does not use X window system but it is integrated into the QNX Graphics Framework (GF).

    ReplyDelete
  5. Thanks for the clarification, Somu! (And apologies to everyone for not responding to your comments -- have just returned from vacation.)

    ReplyDelete
  6. Mohammed Sameer12/28/10, 8:54 AM

    Sorry about my last post. X Windows need not have been mentioned. For a OS gui, the best i think is HTML plus Flash. This is what i am designing around in my forthcoming microkernel OS. What say you ?.

    ReplyDelete
  7. Hi Mohammed. I'll let someone like Somu, who has more expertise than me, to answer. That said, QNX supports both HTML5 and Flash...

    ReplyDelete
  8. QT, for me, will always stand for Apple's QuickTime... Trolltech could really have come up with a different name for their user interface.

    ReplyDelete
  9. Hi Mohammed, Absolutely. You have a choice of different HMI technologies with QNX Neutrino per your UI needs. We provide the platform with all the building blocks and optimizations for our customers to build compelling UI/UX for their end users. It just depends on your application and the HW platform, etc. Feel free to get in touch with us for more info on the product offerings and roadmaps.

    ReplyDelete
  10. Nice blog post! We're excited to see Qt officially being supported on QNX.

    Some comments.

    Qt is fully integrated into Nokia and is not a subsidiary.

    We are also seeing a huge interest in the automotive community for Qt, especially with the recent release of the Qt Quick technology which allows rich fluid UIs to be created incredibly quickly.

    QuickTime was first released in 1991 which is the same time that Haavard and Eirik started developing Qt so its a bit unfair for "anonymous" to say that Trolltech should have come up with a different name ;-) Anyway, QuickTime is QT where are Qt is Qt with a lowercase 't'.

    Simon seems to be rather sharp.

    Alistair Adams
    Nokia Qt Development Frameworks

    ReplyDelete
  11. Alistair, thanks for joining the conversation -- and thanks for the clarifications!

    Cheers,

    - Paul

    ReplyDelete
  12. Hi guys,

    Does QNX/Photon port exist? Or is it planning in future? I think that launching Qt applications inside Photon session is a good idea.

    Respectfully,
    Oleg

    ReplyDelete
  13. I was starting to use Qt on Neutrino 5 years ago, which meant for me using Qt on X.org which was running on XPhoton which was running on native Photon.
    These were in the days of the "3rd party CD". I was 100% sure that platform independent GUI development would be possible with this choice. Well it cost me a lot of pain in these early days, because QNX didn't want to support Qt and Trolltech didn't want to support QNX. But finally I made it. A team of 10 guys in india did the GUI development under Windows, sent the code to Germany and we compiled and ran the GUI under Neutrino. There have been only little limitations.
    Hearing, that the cooperation is now really taking place ( it was already announced 2 years ago ) gives me a deep satisfaction about my past decision.
    Hold on, this is really a good path bringing QNX further to the top.
    steve

    ReplyDelete
  14. Oleg- We have a Qt 4.7.1 port on QNX 6.5 is going through regression testing now and it should be available for prospects in the next couple of weeks. No, it is not integrated into Photon.

    ReplyDelete
  15. With Qt above Photon it would be possible to mix old Photon code and new Qt code.

    Perfect for migrating towards Qt ...

    We are very interested in using Qt above Photon.

    ReplyDelete
  16. Somu, can you please update us on the status of Qt for QNX6.5? I know my company (Silicon Vendor) is very interested in Qt in the automotive space and we are eager to port our existing infotaiment demo (developed on Qt for Linux) to QNX

    ReplyDelete
  17. Sounds interesting. Qt4.7.1 on QNX6.5 is available now. Please contact your local QNX sales rep to get access to the port.

    ReplyDelete