Qt 4.5 arrives
Today, Nokia's Qt Software has released Qt 4.5. The most talked about change in the Qt graphical toolkit is the change to the licensing terms of Qt. Previously, Qt was available under a dual GPL/commercial licence. This was good for GPL application developers but limited its usefulness to people who were producing non-GPL licensed open source or commercial applications. Qt 4.5 now has a triple license to cater for all developers aimed at increasing the adoption of the C++ based graphic user interface. The Lesser Gnu Public Licence (LGPL) 2.1 is now a licensing option for the toolkit; it allows developers to incorporate the toolkit in non-GPL open source and commercial applications as long as they distribute their changes to the Qt libraries.
Qt 4.5 is not without major improvements though. The latest version of Webkit is now integrated with the toolkit, giving it near 100% Acid3 compliance, full page zooming and better standards compatibility. Webkit also brings <audio>
and <video>
element support which users the Phonon media playback framework integrated in Qt; Phonon is a framework which was originally developed for the KDE desktop environment using Xine as a back-end. It has been adopted by the Qt developers as part of Qt, who in turn produced a number of back-ends to enable Phonon to support GStreamer, DirectShow on Windows and QuickTime on the Mac and released those back-ends back to the KDE project in 2007.
The upgrade to Webkit also brings SquirrelFish for better JavaScript performance. Qt Software say they are looking at routes to bring QtScript, its own ECMAScript based application scripting language, and Squirrelfish closer together, possibly even replacing QtScript with Squirrelfish which would reduce the library's footprint and enhance performance.
Proving you are enhancing performance is usually difficult, but Qt 4.5 sees the introduction of QtBenchLib, a new component to make measuring the performance of the toolkit and checking for regressions easier. With the benchmarking in place, the Qt developers set about improving the overall performance of Qt. This reengineering has seen a new X11 paint engine and an OpenGL ES 2.0 paint engine – paint engines are responsible for drawing the user interface on the display.
The X11 paint engine now uses the X Shared Memory (XSHM) extension; this allows X clients which are local to the X server to communicate using shared memory which increases throughput. The OpenGL ES 2.0 paint engine has been added with to better support mobile devices and doesn't replace the more generic OpenGL paint engine. Qt promise that for most applications, a recompile is all that is needed to get the new performance improvements. The graphics system is now pluggable, allowing developers or users to select raster, OpenGL or native graphics at runtime to get the best performance for their applications.
Mac developers who use Qt will note a major reworking of 4.5's Mac support. With the Mac OS X Carbon API not making the jump to 64-bit support while the Cocoa API has gone 64-bit, Qt Software have rewritten the Mac support to use the Cocoa API and allow for 64-bit Qt-based applications. The developers added QMacCocoaViewContainer and QMacNativeWidget classes to allow for a more direct integration with Cocoa's features by wrapping native UI components. For most applications a simple recompile is all that should be needed to switch to generating 64-bit executables.
Qt for Windows CE has been catching up with the feature set of other QT implementations. With Qt 4.5, that process should be complete with the addition of the Phonon multimedia framework and Qt WebKit integration to the Windows CE version.
Other updates to Qt 4.5 include the addition of XSLT support to the QtXmlPatterns module for simpler transformation of XML documents, a command line tool for debugging QtScript scripts with stepping and inspection, ODF support for writing documents (but not for reading them) and the official arrival of QgtkStyle for better looking Qt applications under GNOME.
With the move to the LGPL, Qt Software has also announced that, within a week, they will be opening new infrastructure to support collaboration with the wider community. According to the company, the plan is to avoid the copyright assignment pitfall, where companies require contributions to be assigned to the originating company, by asking contributors to license their code to Qt in such away that it allows them to redistribute to all Qt users, including their commercial customers.
Qt 4.5 can be downloaded from the Qt Software site now.
See also:
- Qt Creator and Qt SDK for more approachable Qt, a report from The H
- Squirrels and Monkeys - The faster future of JavaScript, a feature from The H
(djwm)