Qt Academy has now launched! See how we aim to teach the next generation of developers. Get started
最新版Qt 6.3已正式发布。 了解更多。
最新バージョンQt6.5がご利用いただけます。 詳細はこちら

Qt for Maemo 5, next iteration

With all those Qt releases happening, I feel like we need a new acronym. How about YAQR (Yet Another Qt Release)? So - we're happy to announce YAQR, the second Technical Preview of Qt for Maemo 5 (official announcement). This release focuses mainly on deeper integration with Maemo 5. Lots of widgets received updates to make them more finger-friendly. Kinetic scrolling has been updated to feel just like the native Maemo 5 one. Native dialogs are now used, and QStyle supports the native Maemo 5 themed icons. Several new Maemo 5 specific classes were added:

  • QMaemo5ValueButton: Implements a "Picker Button", basically a button with an extra value
  • QMaemo5KineticScroller: Implements the Maemo 5 kinetic scrolling algorithm
  • QMaemo5AbstractPickSelector: An abstract interface to implement Maemo 5 "pickers", plus a picker implementation for time picking
  • QMaemo5InformationBox: Support for Maemo 5 Banners and Notes
  • QMaemo5EditBar: Support for Maemo 5 Edit toolbar

In addition, we added some new window flags to support special Maemo 5 features:

  • Busy indicator for windows and dialogs
  • Portrait and landscape orientation (listening for orientation changes still has to be done via D-Bus - see the Maemo 5 widget example)
  • Stacked windows to support Maemo 5 "Window Views"
  • Support to disable window compositing in the window manager to improve drawing performance

As a special treat, we managed to improve the OpenGL ES 2 support (*). This was quite a tricky task, since the Maemo 5 input methods rely on native X11 controls. The OpenGL ES 2 graphics system requires all Qt widgets to be "alien widgets" (non-native widgets on an OpenGL surface), though. We fixed that with some proxy magic, so now we can have all Qt widgets on OpenGL ES 2 surfaces but still integrate properly with native input methods.

And now for the mandatory video, showing all those nice improvements:

How do I get it?

We have Debian packages, hosted by maemo.org, so it is no longer necessary to compile Qt. Short story: Add Maemo's "extras-devel" repository and type "fakeroot apt-get install libqt4-maemo5-dev". Qt will be installed to "/opt/qt4-maemo5". The long story can be found on the wiki.

The source code repository is still at http://qt.gitorious.org/qt/x11-maemo. Check out "README.maemo5" for build instructions.

How to contact us?

You can reach us via the "qt-maemo-feedback" mailing list (see Mailing List instructions), or on the "#qt-maemo" IRC channel on irc.freenode.net. For bug reports, you can use our bug tracking system at http://bugreports.qt.nokia.com/. Please set the bug's component to "Maemo 5".

Disclaimer

It's a Technical Preview. Treat it as such :)

How to debug

The gdb 6.8 that is currently shipped with the Maemo 5 SDK is crashing a lot when trying to debug Qt applications. We packaged gdb 7.0 for scratchbox (ARM and x86 targets), you can find the packages here: http://chaos.troll.no/~harald/gdb7/. gdb 7.0 is installed as "gdb7" (note the "7" suffix) to /usr/local/bin, so it won't clash with the existing gdb. If the standard gdb crashes, give our gdb7 a try.

What'll happen next?

  • Much more documentation (sorry for the lack of it)
  • Pickers for date and general single selection QAbstractItemModel picking
  • Kinetic scrolling also for QWebView
  • Fine tune the layout and widget metrics and spacing
  • A Qt for Maemo 5 Beta once we're feature complete and have better test coverage

(*) Note that there are currently still some rendering glitches with the OpenGL ES 2 graphics system which we're currently investigating.


Blog Topics:

Comments