Qt Quick has been around for a little while now, helping developers make great looking, responsive user interfaces. And it is nice to see so many applications in Ovi Store utilizing this new technology. But we want to keep taking it further and one of the ways we’re doing that is by adding ready-made UI building blocks to Qt Quick. We call these building blocks Qt Quick components!
In brief, Qt Quick components is a UI component set for Qt Quick application developers and designers. It helps to create a fresh and modern UX with added productivity. In the first phase, the Symbian and MeeGo 1.2 Harmattan platforms are covered. For more information on the history of this project so far, see the related Qt Labs postings below.
Symbian
Qt Quick components 1.0 for Symbian is available now as an update for Qt SDK, and it includes targets, documentation and example code. You can obtain Qt Quick components for Symbian in either of the following ways:
- If you have Qt SDK 1.1 installed, open Qt SDK’s Maintenance tool in Qt Creator ( Help | Start Updater ) and find from “Package Manager” a “Qt Quick components for Symbian” update under “Experimental” category.
- If you don’t have Qt SDK installed yet, find a online installer http://qt.nokia.com/downloads and remember to select “Custom installation” and ”Qt Quick components for Symbian” under “Experimental”.
Then, just import com.nokia.symbian and you have a fresh set of components at your disposal. Now developers and designers can easily start to use the Qt Creator’s application wizard and Qt Quick Designer (see the screenshot on the right). In addition to visible controls such as buttons, menus, dialogs and indicators, Qt Quick components 1.0 for Symbian provides invisible components for window and navigation handling. A full list of components is available online as a part of Qt Quick components’ documentation at http://doc.qt.nokia.com/qt-components-symbian-1.0/qt-components.html
To get started with the overall UI design for Symbian, see updated Symbian Design Guidelines at Nokia Developer web site: http://www.developer.nokia.com/Resources/Library/Symbian_Design_Guidelines/
For an easy deployment, Qt Quick applications using Qt Quick components are now ready for Ovi Store delivery. Just choose a few options in Qt Creator to make your application compatible with Smart Installer. Smart Installer will ensure that all necessary modules (now including Qt Quick components) are available in consumers’ Symbian^3 and Symbian Anna devices (S60 5th edition devices are not supported in the first phase)
To make your application compatible with Smart Installer, use Qt Creator’s application wizard and make sure that “Create Smart Installer Package” is checked in “Projects | Symbian Device | Create SIS package”. For more information, see http://doc.qt.nokia.com/smart-installer/
A good starting point to get touch with a code and see Qt Quick components in action, is to check code examples and demos in Qt SDK or online at http://doc.qt.nokia.com/qt-components-symbian-1.0/qt-components-examples.html
MeeGo Harmattan
Two weeks back, Qt SDK was updated with the new target for MeeGo 1.2 Harmattan. Please note that the support for MeeGo 1.2 Harmattan is not fully completed yet and maturation is ongoing. Qt Quick components for MeeGo 1.2 Harmattan are included in the target and applications developed by using it are ready to the Ovi Store submission. It is highly recommended that applications are tested using the final target (when available) and verified on device with updated SW.
Nothing stops you to start development for Nokia N9 (http://blog.qt.nokia.com/2011/06/21/nokian9/) today! To get familiar with Nokia N9 UX Guidelines, visit in http://www.developer.nokia.com/swipe/ux/. For more information about Qt Quick components for MeeGo 1.2 Harmattan, please refer to the documentation in Qt SDK. Here is a blog entry that gives an overview how you can get started: http://www.developer.nokia.com/Community/Blogs/blog/kate-alholas-forum-nokia-blog/2011/06/23/nokia-meego-1.2-harmattan-qt-quick-components
Next Steps
It took some time to move MeeGo Harmattan components’ code back to the upstream. However, now Qt Quick components for MeeGo 1.2 Harmattan is developed in the same public repository as Symbian components: http://qt.gitorious.org/qt-components/
At the Qt Contributors’ Summit in June, there was a lot of discussion about experimental sets of components for desktops and a custom set of components. It was nice to notice that there is a lot of interest around Qt Quick components in the community, so stay tuned and keep contributing to the Qt projects!
As an immediate next step we wish to have a lot of new innovative Qt Quick applications using Qt Quick components in Ovi Store!
Possibly related posts:

39 comments
The obvious next step is mundane, but essential for developers to realise the cross-platform benefits: an import of com.nokia.qt.components (or something) rather than com.meego for Harmattan and com.nokia.symbian.
Having otherwise identical APIs is great, but if the second line of the QML file needs to change, that’s a real pain!
How much cross-platform are those components? How much work does it require to write a simply application that runs on Ubuntu / Symbian / Harmattan and looks native on each?
Also I noticed that “plain” Qt Widgets look very bad on Harmattan, not at all like the “natively looking” QtQuick components. Will we get an updated style that enables QWidgets looking the same as their QtQuick counterparts?
Indeed. We need to have naitive-looking widgets, as well as themable ones. A lot of work was put into At to get it to use GNOME desktop prefs to make Qt apps look GNOME-ic. I’d hate to see that tossed out. Or rather, not made available in QML.
But overall, this is good news indeed!
Is there a way for a developer to get one of the MeeGo phones slated for September release?
What about Maemo (N900) and “generic” MeeGo?
Does Ovi support Qt Quick components 1.0 for Symbian? If so, why it’s in Experemental category?
Nothing stops me to start development for Nokia N9 but the fact that I don’t have a N9 yet. Please release this phone ASAP. At least tell us when it will be available (and where/how).
Anyway thanks
@Truf:
It is under the experimental section, as this is the very first integration of this additional API into the QtSDK. In case everything went well, and we didn’t oversee any issues, it will move to the final section pretty soon.
developer.nokia.com has a blogpost about this also and plan is to support mademo5 and meego900CE I dont know how far this has gotten but looks promising
@Andrew Flegg +1
@Andrew Flegg:
For now, “com.nokia.symbian” and “com.nokia.meego” imports should be used. However, you have a good point and a need for that is identified. There is an experimental “Qt.labs.components.native” import available and used in “cross-plaltform” example applications http://doc.qt.nokia.com/qt-components-symbian-1.0/qt-components-examples.html
Exactly ths same code runs on Symbian and MeeGo 1.2 Harmattan, but the current technical solution is experimental only and not productized yet. As already mentioned, a need is understood.
@Cristian Vetter:
At the moment only mobile platforms (Symbian and MeeGo 1.2 Harmattan) are officially supported. Qt Quick components for Desktop has a nice experimental start in Qt Labs: http://labs.qt.nokia.com/2011/03/10/qml-components-for-desktop/ and there was a real interest at the Qt Contributors’ Summit.
A common API is defined here: http://bugreports.qt.nokia.com/browse/QTCOMPONENTS-200 and by checking a code in example applications, you may get an idea what it takes to utilize them in practice and gain on a native look. Plain Qt Widgets are not recommended to be used on mobile platforms and there is no major updates expected to that in the future.
This is really, great news!! Thank you guys! I was going to go to sleep, but then I saw this news
I think I’ll try this ASAP. Finally I can continue my Symbian projects which were waiting for thid release.
The Updater can’t find any Symbian Components under “Experimental”, or anywhere else for that matter, in my 1.1.2 Windows7 installation. It does though find Harmattan. Could it be confused by the installation of the tech preview version from April?
I’m now downloading the full off-line 1.1.2 installer to do a full remove and reinstal to see if that helps.
Hi, on one of my computers I have the same problem as Alistair, it doesn’t work also if I try to use online installer.
On my other machine the are qt components.
These babies really rock! It is fun and productive (again!) to create UIs and they really look professional.
N900 and MeeGo 1.2 N900 CE and generic MeeGo port of Harmattan components is coming very soon, in couple of days.
Stay tuned on my blog
Kate
is there any way to install Qt Components offline without compiling them? for some reason my SDKMaintenanceTool.exe is deleted and now I can’t access updater tool without reinstalling entire SDK which I cant afford to do.
I agree with Andrew Flegg, cross-platform imports are a must. You must import the components into every .qml file that needs to use them and this is a huge pain when compiling as #ifdef commands can’t be used in .qml files. Is it very hard to perfect the Qt.labs.components.native import? All that is needed is that it is automatically replaced with the native import command on compilation.
Hello
I’ve trying to compile the extras gallery example for the phone and it fails because of the patching step.
The id is in the protected range and the example asks for the SwEvent capability. Is this capability necessary for any project using the Symbian component? This would be a very bad situation, then it’s not possible to self sign.
@Carlos: SwEvent capability is not required for the Qt Quick Components for Symbian, so you can remove it.
@Carlos
Register as an independent publisher with Ovi Store (1€) and they will give you protected UIDs and a certificate for signing apps using the 13 capabilities from the Basic and Extended range. SwEvent included. Once you do that, the capabilities problem disappears (well, as long as you stay withing that limit), and you can later publish the app to the Ovi Store.
Symbian Signed also offers developer certificates for signing applications using these 13 capabilities and the registration is free. All you need for registration is an email address that is not obtained from a web-mail service.
@Maurice
I suppose that mean that Qt Components doesn’t supported by Ovi Store and Smart Installer yet?
But in that recent article: http://www.allaboutsymbian.com/news/item/13081_Qt_Quick_components_10_for_Sym.php
you may find following: “Applications built using Qt Quick components 1.0 for Symbian are already being accepted by the Ovi Store submission process. The Smart Installer will ensure that the components are downloaded and installed on to a users device if necessary.”
What is correct?
Hello, happy to hear this.
I have finished in these days a couple of pieces that can be interesting about this argument: a framework (started before the new Qt component) parametrized and “themed” in QML to develop complex and interactive UI with a set of custom components and – released just last night – the first N9-Harmattan working application that uses some of these new Qt -Quick comopnents. Are you interested to plan a package of documented examples to be released in very few time including templates and more to helpfully support the developers in building complex and animated UI with this new platform with Meego 1.2 compability ? We can plan together the guidelines so I can prepare these pieces and make them ready asap.
Cheers to all
@Samppa, thanks for the comment. You are right, you can remove the capabilities and it does compile without problems.
@Lucian, thank you for the advice. I already know about this options (I have a company certificate, but I can not use it in my personal experiments) but it would be an inconvenience not been able to self sign just to show a list of widgets.
No one wants to step in and make a QML implementation of Skype? Using their API u can actually implement skype…
I imagine Skype made in QML, a beast, being more beautiful than the original
Okay.
I installed it, started coding and designing, import statements worked just fine. Then I closed the Qt Creator and opened it again and even though the Package Manager says it’s installed, import statement is lined in red, almost all code is lined in red too and the Designer gives the “package not found” error.
What gives?
@Janne Pulkkinen: I experienced something similar: http://bugreports.qt.nokia.com/browse/QTSDK-786
If you have something to add to that task (as comment), it may help us to fix that issue. Thanks.
Could you try to add a Simulator target to your project (in the “projects” mode, press the “+” next tho the “Symbian Device” tab in the top) and see if that helps?
@aportale
I removed the Qt Simulator target and added it in again.
It started working again, thanks!
Dang, it broke again.
Hello.
Great that these components are out now. Serious development is not really feasible without them. I especially like the handy “Screen” component.
Im having trouble testing the components on my Nokia E7. I develop with a Suse Linux machine and the current Qt Sdk
How can I get them onto it? I copied the
Symbian/sis/Symbian^3/qt-components/qt-components_1_0.sis
from my Qt sdk installation dir to the phone. When I tries to install them however I got an error message about the file format being wrong.
Note: If I remote compile the Demos/4.7/qt-components/flickr/ example it runs on the phone, but only if I dont change the
“import Qt.labs.components.native 1.0″ to “import com.nokia.symbian 1.0″
This is not an option if you use say the “DatePickerDialog” (which my app does) since its an ‘extra’ component.
P.S
It would be nice to be able to create/use (Tool) Buttons based on an image file – currently the said components sem to resize the image regardless of its original size.. it would be nice if one could modify this behaviour (eg so a toolbutton would be exactly the same size as the image its given).
@Maurice
I have the same concern as Truf. Is Qt Quick Components really supported by the Smart Installer. I don’t see it mentioned here?
http://www.developer.nokia.com/Community/Wiki/Nokia_Smart_Installer_for_Symbian
And if it is supported. Can you tell the details how to add the dependency to it in the .pro/.pkg files? I mean the package UID etc, which will instruct the smart installer to download the required packages.
Thanks!
It seems ” “CheckableGroup” is missing from the sdk.
If I try the example at
http://doc.qt.nokia.com/qt-components-symbian-1.0/qml-switch.html
. Then Creator tells me “CheckableGroup ” is an unknown type.
Its also not documented at
http://doc.qt.nokia.com/qt-components-symbian-1.0/symbian-components-functional.html
Seems like one cant use radio buttons (exclusively) without it?
It seems Harmattan Qt Components still has many rough edges:
- UiConstants is not available
- Label does not support elide
- Label is not public (wtf!)
- TextField does not utilize the complete width if it’s put into a Sheet component
- InfoBanner is not available for 3rd party developers (“”com.nokia.extras” version 1.1 is not installed”)
So when will there be an update available? It’s quite difficult to do any serious development with this version.
I would also like to see that the N9 UX page would get better references to the relevant APIs when it talks about some thing 3rd party developers can/should do.
Ok just an update to my earlier post. By just trying it out it seems that “components” are in fact supported by the SmartInstaller. Now it would be good that the Forum Nokia wiki also says this! In addition it would be good that the package provided by the SmartInstaller would have higher version number that was used in Technology preview i.e. here:
http://labs.qt.nokia.com/2011/04/08/qt-quick-components-for-symbian-technology-preview/
The problem is that if someone has already installed the tech-preview it will not get updated by the SmartInstaller. For example TimePickerDialog was not in tech-preview meaning that an app using that component will not work – it just silently brakes without errors …
@Jari
I’m curious to know how you got the qt-components to work with SmartInstaller? I’m using qt-components for Symbian and I’ve ticket off the SmartInstaller option, but it doesn’t work for me. I have to either bundle qt-components myself or install them manually.
I am using the public sdk, fully updated with remote compiling.
@René
In addition to enabling qt-components in the SDK you need to say:
CONFIG += qt-components
in your .pro file.
That should generate the appropriate dependency line the .pkg file.
See my post here also:
http://www.developer.nokia.com/Community/Discussion/showthread.php?227136-Qt-Quick-components-1.0-amp-SmartInstaller&p=854295&viewfull=1#post854295
@Jari
Thank you. I was just returning because I found this out from the #qt-symbian channel on freenode.
However, I found that this method doesn’t actually work for me. I did a factory reset of the phone and added the above. I can see the added dependency in my template.pkg file, but qt-components doesn’t actually install.
I found another way though. If I add this to my .pro file it works:
qt_components.pkg_prerules += “(0x200346DE), 1, 0, 0, {\”Qt Components\”}”
DEPLOYMENT += qt_components
Is there any progress on Harmattan Qt Components?
Like in post 32, I try to import com.nokia.extras.
It looks like there is something installed (there is a folder /usr/lib/qt4/imports/com/nokia/extras.1.1/ with a file InfoBanner.qml) but it still can’t be found.
When I have have a simple qml file with just the line “import com.nokia.extras 1.0″ or “import com.nokia.extras 1.1″, qmlviewer gives a “module “com.nokia.extras” version 1.0 is not installed” error.
hi , i want to question, when i install some aplication i got message qt component is missing,,but i’ve install qt.sis (12 mb) i think i lost something! Could u help me?
Comments on this entry are closed.