Building the future: (re)Introducing the Qt Quick components

Qt Quick is an awesome piece of technology. It fundamentally changes how you write native User Interfaces and makes the possibility of creating amazing Apps available to designers as well as developers, not to forget the large community of man-cave hackers and hobbyists. If you have an application that provides it's own unique look and feel - a differentiated user experience - Qt Quick fits the bill today.

While UI frameworks have been built on top of Qt, we have continued to work on the quality and stability of Qt and Qt Quick. The Qt 4.7 release candidate that just came out is a quality product that we have put a lot of blood, sweat and tears into. With Qt Quick we're ready to take the next step and start moving in the direction of offering a more complete set of features for App developers who might be less inclined to venture forth into the dungeons of C++ and build systems.

So what's missing? Where do you need to drop down to C++ today to build a native User Experience? Well, it's a rather complex picture.. On devices you have components like Titlebar, Home/Close button, Actions, List items, Views, Buttons, Checkboxes... the list goes on. And they are all fundamentally different than what you see on the Desktop - optimized for a very specific form factor and user experience. And add to that, they often have a very unique appearance. You can build them with Qt Quick, but you've got some work ahead of you in making them look right and behave like native widgets - and you're largely on your own for the moment.

MeeGo Handset DesignWe have been aware of this gaping hole for some time, and yes - we are doing something about it. We're currently in the process of building widgets for Qt Quick (..that is, not in the traditional QWidget sense - QWidget-based UIs will reman the primary architecture to use for Desktop applications). The Qt Quick components will in the first iteration focus on the MeeGo Handset Look and Feel. Later, we (and hopefully community members - hint, hint) will add additional widget styles, that interrogate the native theme server for pixmaps, margins, fonts etc. The common ground will be a base set of QML Item elements that define properties - but the widgets themselves can implement the use of these properties any way they want. Call it the component contract.

So far we have identified a set of basic widgets and features in the public task tracker. We are also using this as the central place to stay up to date with the project, see progress, file bug reports or suggestions. There's also a public git repository (you can clone it and submit merge requests) as well as mailing list and irc channel. So far, the project is coming along nicely, and we can show many of the basic items in MeeGo Touch;

calculator gallery buttons gallery lineedit

We also have a prototype Mx widget set there, currently using physical resources to emulate the style - rather than interfacing with the theme server as the current MeeGo-style implementation does. This is definitely an area we are welcoming contributions in.

So, jump on the bus and play with the components! Your feedback and engagement will help us build this into a solid and useful solution that will benefit the whole Qt community!


Blog Topics:

Comments