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

# What's New in Qt 4.3

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

A comprehensive list of changes between Qt 4.2 and Qt 4.3 is included in the `changes-4.3.0` file provided with Qt, and is also available online.

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

Highlights

- Main Window Styles
- QtScript - Application Scripting with ECMAScript
- Improved Graphics Support
- New Widgets and Desktop Integration Enhancements
- Extended and Improved Infrastructure
- Qtopia Core

## Main Window Styles

The main window classes now provide support for different main window paradigms, such as those found in Visual Studio or KDevelop.

Dock widgets occupying the same area can now be arranged in horizontal, vertical or collapsible tabs. Collapsible tabs are oriented according to the location of dock widgets around the main window's central area. suitable

API improvements to QDockWidget enable dock widgets to be given custom title bars and window styles, and also include support for vertical title bars.

Additionally, support for animations has been extended to tool bars, resulting in more sophisticated effects when tool bars and dock widgets are rearranged. See the Main Window demonstration for an extensive tour of these new features.

## QtScript - Application Scripting with ECMAScript

This release introduces the QtScript module, providing an script engine for the ECMAScript language, based on the ECMA-262 standard, that is designed to enable easier integration of scripting facilities into end-user applications.

Scripts access application functionality via QObjects that are specifically created and exposed by each application. Information about the available child objects, properties, signals and slots is provided by Qt's object model. This means that, in many cases, script-enabling an application requires little effort on the part of the developer.

A set of examples are included to show how classes and functions written in C++ can be exposed to the script engine, including a port of the Calculator example which shows how a QtScript can be used with a user interface created with Qt Designer.

## Improved Graphics Support

To improve graphics performance on Windows, this release includes an experimental Direct3D paint engine to provide native hardware acceleration on Windows systems with suitable graphics hardware. Although we have conducted internal testing with a selection of graphics cards, we cannot guarantee that this feature will work correctly with all hardware or drivers. Please report feedback on this feature via the Task Tracker.

Qt's interoperability with the Scalable Vector Graphics (SVG) file format has been improved by the introduction of the QSvgGenerator class, a paint device that can be used to save Qt rendering operations in the form of an SVG drawing. This class can be used alongside the existing QSvgWidget and QSvgRenderer classes to provide full input/output support for vector graphics.

The OpenGL paint engine has been heavily improved to take advantage of new features in modern graphics hardware. Through the extensive usage of fragment programs, users with suitable graphics hardware can expect to experience much faster and higher quality rendering when OpenGL is used. Support for an additional anti-aliasing mode for OpenGL allows developers to choose between high quality rendering or speed when older or less-capable hardware is used.

## New Widgets and Desktop Integration Enhancements

Applications running on Windows Vista automatically support animations and other Vista-related enhancements through the use of the new QWindowsVistaStyle class, providing a widget style that makes Qt applications look and feel native on Windows Vista.

Qt 4.3 also provides a number of new and redesigned widgets, including the QWizard class which supports application wizard functionality in a variety of native styles, including one for Windows Vista applications.

The QMdiArea class provides an Multiple Document Interface (MDI) widget that is intended to provide a more consistent API for developers to use and more predictable behavior for users. The API has been designed to be very similar to that provided by QWorkspace in order to make porting between the two widgets a straightforward task.

On X11, QFileDialog has a brand new look and feel, and has been optimized to perform better with directories containing large numbers of files.

## Extended and Improved Infrastructure

The QtNetwork module has been extended to include support for Secure Socket Layer (SSL) communications via the QSslSocket class. As a result, QHttp is now able to provide support for the HTTPS protocol.

Qt's network proxying facilties have been extended to cover HTTP CONNECT proxying, and also include support for Cram-MD5 and NTLM authentication.

The QtXml module has been expanded with classes to provide a streaming API for handling XML: QXmlStreamReader and QXmlStreamWriter complement Qt's existing range of SAX and DOM-based classes.

An enhanced layout system accommodates many special cases for Mac OS X, enabling Mac OS X style to provide a faithful Mac look and feel.

Qt's threading has been enhanced to include support for timed try-locks in QMutex, QReadWriteLock and QSemaphore. Additionally, a BlockingQueuedConnection connection type has been introduced to complement DirectConnection and QueuedConnection.

QThread has been updated to provide an idealThreadCount() function. This takes various system-specific factors into account to determine the optimal number of threads that can be run on a given system.

## Qtopia Core

As in Qt 4.2, many improvements to Qt's graphics support and rendering performance are specific to Qtopia Core. These include general speed optimizations, accelerated graphics API improvements, and additional support for OpenGL ES.