Qt 4.5: What's New in Qt 4.5

|  | Home · All Namespaces · All Classes · Main Classes · Grouped Classes · Modules · Functions |

# What's New in Qt 4.5

Qt 4.5 provides many improvements and enhancements over the previous releases in the Qt 4 series. This document covers the most important features in this release, separated by category.

A comprehensive list of changes between Qt 4.4 and Qt 4.5 is included in the `changes-4.5.0` file available online. A list of known issues for this release is also available.

Changes between this release and the previous release are provided in the `changes-4.5.3` file (also available online).

A list of other Qt 4 features can be found on the What's New in Qt 4 page.

Highlights

- Qt WebKit Integration
- Performance Improvements
- Mac OS X Cocoa Support
- Windows CE Feature Parity
- XML Transformations with XSLT
- Qt Script Debugger
- OpenDocument File Format Support
- Improved Network Proxy Support
- Qt Designer Improvements
- Qt Linguist Improvements
- Graphics Enhancements

## Qt WebKit Integration

The WebKit browser engine included with Qt has been upgraded to the latest upstream (trunk) version of WebKit, bringing the latest features and improvements to Qt applications. These include:

- Support for full page zooming, with appropriate rescaling of images and fonts.
- The CSS-based transformation and animation features provided by a WebKit extension.
- Performance improvements due to faster JavaScript engine and optimized page loading.

Standards compatibility improvements include provision for the Netscape plugin API, allowing most Netscape plugins to be used in-process, support for HTML 5 audio and video elements using Qt's Phonon integration, and facilities for client-side storage of Web content.

## Performance Improvements

The introduction of the QtBenchLib performance benchmarking library enables performance benchmarking and regression testing. Core parts of Qt itself have undergone focused re-engineering for improved graphics performance, including paint engine and text rendering improvements, Graphics View and style sheet performance improvements.

The X11 paint engine now uses XSHM (the X shared memory extension), resulting in reduced overhead for painting operations.

A new OpenGL ES 2.0-based paint engine complements the existing OpenGL paint engine, but with a focus on embedded devices.

Qt now features a pluggable graphics system, making it possible for users and developers to select raster, OpenGL or native graphics systems to take into account the specific needs of their applications and get the best performance out of them.

## Mac OS X Cocoa Support

Qt for Mac OS X has been substantially rewritten to use Apple's Cocoa API, enabling Qt applications to be deployed on 64-bit Macintosh hardware. In addition, the new QMacCocoaViewContainer and QMacNativeWidget classes provide integration with Cocoa's own features and controls.

For many applications, a simple recompilation is all that is required to produce an executable for 64-bit systems. Applications that use specific features may require a few changes first.

## Windows CE Feature Parity

Qt for Windows CE has been updated to bring features of Qt 4.4 and Qt 4.5 to the Windows CE platform, including:

- Phonon Multimedia Framework, using a Direct-Show based backend for audio and video playback and a Simple WaveOut backend for devices without DirectShow.
- The inclusion of Qt WebKit integration features previously unavailable for Qt 4.4 on Windows CE.

Support on all Windows CE platforms; recommended for WinCE 6 and higher.

The inclusion of these features enables developers to easily integrate Web and multimedia content into Qt applications on Windows CE Standard Edition while retaining full cross-platform compatibility with other Qt platforms.

## XML Transformations with XSLT

The QtXmlPatterns module has been extended to cover XSLT, a transformation language for XML documents. A common application of this is the transformation of XML data into human-readable formats for reporting purposes.

XSLT makes it simple to reformat XML content without changing data structures, removes the need for an intermediate DOM layer for presentation, and enables rapid solutions to be created; for example, creating reports as HTML or PDF.

## Qt Script Debugger

Developers using Qt Script in their applications can take advantage of the new Qt Script Debugger to provide error reporting for scripts, and to let users track down bugs in their own scripts.

Many standard features of GUI debugging tools are present, allowing the developer to step through running script code, inspect variables, automatically catch exceptions, and set conditional breakpoints.

## OpenDocument File Format Support

Qt 4.5 includes support for writing rich text documents as OpenDocument files via the newly-introduced QTextDocumentWriter class. This provides an generic mechanism for file export that can be used to introduce support for additional formats in future releases.

## Improved Network Proxy Support

Qt's networking classes have been updated with improved proxy support. This includes improved integration with system proxy settings and the added ability to handle non-trivial proxy cases.

## Qt Designer Improvements

Qt Designer 4.5 boasts some improvements on usability, for example:

- Icon Mode for the widget box which substantially reduces scrolling.
- Morphing Widgets which lets you morph similar widget types, e.g., a QWidget to a QFrame, types via the context menu's Morph into entry.
- Filters for the Property Editor that lets you find properties or widgets quickly.
- Find option for the Object Inspector that performs an incremental search on the form's widgets. Also, the objects' layout state is displayed here with using an icon on the left. Broken layouts are represented with the same icon used for the Break Layout action.

In addition, Qt Designer now features an Embedded Design tab that can be found in the Preferences dialog. Within this tab, you can define embedded device profiles. These profiles contains screen settings, e.g., display resolution, default font and default style. Qt Designer will use these settings when you edit forms.

More information about these improvements can be found in the What's New in Qt Designer 4.5 overview.

## Qt Linguist Improvements

Qt Linguist can now load and edit multiple translation files simultaneously.

Support for XML Localization Interchange File Format (XLIFF) files, previously added to the `lupdate` tool in Qt 4.3, has been improved and extended to the rest of the Qt Linguist toolchain. This enables files stored in Qt's TS translation format to be exported for use with other tools.

The GNU Gettext PO format, which is commonly used in Open Source projects, is now supported by Qt Linguist.

Support for a new way to annotate messages, using comments in the source code, has been added to the toolchain. See the QObject::tr() documentation for a detailed description and examples.

The new `lconvert` filter tool facilitates conversion between file formats and can be used to perform other transformations on collections of translatable strings.

## Graphics Enhancements

In addition to the performance improvements in this release, a number of graphics enhancements extend support for existing features to more platforms and expand Qt's core set of features with successful add-ons.

Widget style sheets can now be used on Mac OS X, making this approach to theming and styling viable for truly cross-platform applications.

Support for ARGB top-level widgets, previously available as a separate solution, is now provided as an integral part of Qt. This makes it possible to create windows with translucent regions on systems with the appropriate support from the user's window system. See the Creating Translucent Windows section of the QWidget documentation for details of this feature.

Improved GTK+ integration provided by the QGtkStyle class improves the look and feel of Qt applications in GNOME and other GTK-based environments. The screenshot above illustrates this clearly.