After many months of designing, coding, reviewing, testing and documenting, Qt 4.7.0 is finally ready for the big time. Although it's a little more than nine months since Qt's last feature release (4.6.0 on December 1, 2009), the seeds of some of the new stuff in 4.7 were sown much earlier. Indeed, many of the ideas behind the biggest new feature in Qt 4.7.0, Qt Quick, were born more than two years ago, not long after Qt 4.4 was released

As some of you might know, programming isn't exactly my cup of coffee so I'll do my best not to sound too much like an idiot running down the list of new features in this latest Qt release.

Qt Quick is the biggest new thing in this release. "Qt Quick, the Qt UI Creation Kit, enables the creation of dynamic user interfaces, easier and more effective than possible with existing UI technologies." It consists of three core technologies: QML, QtDeclarative, and the venerable Qt Creator.

QML is a declarative language oriented on JavaScript that utilizes Qt's Meta-Object capabilities to enable designers and developers to collaborate tightly and create animated and fluid user experiences, using existing knowledge in script language and design.

QtDeclarative is a C++ library that provides the underlying engine, which translates the declarative description of the UI in QML into items on a QGraphicsScene. The library also provides APIs to bind custom C++ types and elements to QML, and to connect the QML UI with the underlying application logic written in C++.

Qt Creator has been improved to support interactive editing of QML UIs through drag-and-drop. The text editor supports the QML syntax and provides authoring assistance such as auto-completion, error lookup, help lookup and easy preview of QML UI's. The Qt Quick features in Qt Creator will be released with Qt Creator 2.1

A lot of work has gone into further improving QtWebKit and its performance. For instance, QGraphicsWebView has a new tiled backing store which should improve scrolling and zooming performance. There's also a new feature in QtWebKit called frame flattening, which will resize frames to make sure no scrollbars are displayed. The performance improvements are paying off: compared to Qt 4.6.0, scrolling performance has improved 350%, page loading 16%, and CSS animation 31% thanks to accelerated compositing.

Performance improvements were a focus across the board. The newly introduced QStaticText class improves text rendering performance, Qt gets a new widget implementation which improves performance of applications with complicated UIs on Mac OS X, and the JavaScript engine has been improved.