![]() |
Home · All Classes · All Functions · Overviews |
Qt 4.6 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 list of other Qt 4 features can be found on the What's New in Qt 4 page.
Highlights
Qt 4.6 is the first release to include support for the Symbian platform, with integration into the S60 framework. The port to Symbian and S60 provides all functionality required to develop rich end-user applications for devices running S60 3.1 and later.
The animation framework helps build highly animated, high-performance GUIs without the hassle of managing complex structures, timers, and easing curves, not to mention the large state graphs that all animated GUIs tend to be full of.
The framework makes it easy to animate QObjects, including QWidgets, by allowing Qt properties to be animated. It also allows creating custom animations and interpolation functions. Graphics views are not left out; one can animate QGraphicsWidgets and new QGraphicsObjects which inherit from QGraphicsItem (and thereby enable properties).
Animations are controlled using easing curves and can be grouped together. This enables animations of arbitrary complexity.
The API is easy to grasp with functions such as start(), stop(), pause(), and currentTime(). Here is an image from one of the examples that come with the framework:
The animation framework also plugs into the new Qt Statemachine by allowing an animation to be played when transitions are triggered. The state machine framework is introduced in 4.6 and is described below.
See The Animation Framework documentation for more information.
The state machine framework provides a robust state chart implementation based on Harel statecharts and SCXML. Qt's API lets you construct such state graphs and execute them. The key benefits of a state machine are:
It is especially the last item here that makes using a state machine worthwhile. A key characteristic of event-driven systems (such as Qt applications) is that behavior often depends not only on the last or current event, but also the events that preceded it. With statecharts, this information is easy to express.
The framework fits neatly into Qt by allowing transitions to trigger on signals and QEvents. By inserting animations into the state machine, it is also easier to use the framework for animating GUIs, for instance.
See The State Machine Framework documentation for more infromation.
The new multi-touch and gestures support enables user interaction with more than one finger, and combines sequential touch inputs to a 'gesture'.
The main benefits of this new functionality are:
See the QTouchEvent class documentation for more information. The Gesture framework API is still subject to change.
Web pages and XML both have very complex document object models. The W3C selector API provides a very simple way to access and manipulate such structures. This API makes it intuitive to access DOM, helps reuse CSS selector knowledge, and gives little maintenance or footprint overhead.
QWebElement document = frame->documentElement(); QList<QWebElement> allSpans = document.findAll("span"); QList<QWebElement> introSpans = document.findAll("p.intro span");
See the QWebElement class documentation for more information.
As always, Qt continuously strive to optimize its performance. For this release, we have:
Effects can be used to alter the appearance of UI elements such as QGraphicsItems and QWidgets. A range of standard effects such as blurring, colorizing or blooming is provided, and it is possible to implement custom effects.
See the QGraphicsEffect class documentation for more information.
The QtXmlPatterns module can now be used to validate schemas, either through C++ APIs in the Qt application, or using the xmlpatternsvalidator command line utility. The implementation of XML Schema Validation supports the specification version 1.0 in large parts.
See the XML Processing and QXmlSchema class documentation for more information.
As more of Qt, and more of the applications built on Qt go 3D, API's should be provided to simplify this. Mainly, the new API aims to make it more easy to create 3D applications with OpenGL. It will also unify the Qt OpenGL codebase, and enable cross-platform 3D codebase.
The main features of the Qt3D enablers are currently: Math primitives for matrix multiplication, vectors, quaternions (client-side), and API for vertex and fragment shaders, GLSL/ES. Future research will, among other things include stencils, scissors, vertex buffers and arrays, texture manipulation, and geometry shaders.
Qt 4.6 comes with new classes for handling audio. These classes provide low-level access to the system's audio system. By specifying the audio format (QAudioFormat) and supplying audio data through a QIODevice, you get direct access to the functionality of the sound device. The API also comes with functions to query audio devices for which audio formats they support.
See the QtMultimedia Module documentation for more information.
Links to classes, function, and other items that were added in 4.6.
QAbstractAnimation | The base of all animations |
---|---|
QAbstractState | The base class of states of a QStateMachine |
QAbstractTransition | The base class of transitions between QAbstractState objects |
QAbstractVideoBuffer | Abstraction for video data |
QAbstractVideoSurface | Base class for video presentation surfaces |
QAnimationGroup | Abstract base class for groups of animations |
QAudioDeviceInfo | Interface to query audio devices and their functionality |
QAudioFormat | Stores audio parameter information |
QAudioInput | Interface for receiving audio data from an audio input device |
QAudioOutput | Interface for sending audio data to an audio output device |
QContiguousCache | Template class that provides a contiguous cache |
QEasingCurve | Easing curves for controlling animation |
QEventTransition | QObject-specific transition for Qt events |
QFinalState | Final state |
QGLFramebufferObjectFormat | Specifies the format of an OpenGL framebuffer object |
QGLShader | Allows OpenGL shaders to be compiled |
QGLShaderProgram | Allows OpenGL shader programs to be linked and used |
QGenericMatrix | Template class that represents a NxM transformation matrix with N columns and M rows |
QGesture | Represents a gesture, containing all properties that describe a gesture |
QGestureEvent | The description of triggered gestures |
QGraphicsAnchor | Represents an anchor between two items in a QGraphicsAnchorLayout |
QGraphicsAnchorLayout | Layout where one can anchor widgets together in Graphics View |
QGraphicsBloomEffect | Bloom/glow effect |
QGraphicsBlurEffect | Blur effect |
QGraphicsColorizeEffect | Colorize effect |
QGraphicsDropShadowEffect | Drop shadow effect |
QGraphicsEffect | The base class for all graphics effects |
QGraphicsEffectSource | Represents the source on which a QGraphicsEffect is installed on |
QGraphicsGrayscaleEffect | Grayscale effect |
QGraphicsObject | Base class for all graphics items that require signals, slots and properties |
QGraphicsOpacityEffect | Opacity effect |
QGraphicsPixelizeEffect | Pixelize effect |
QGraphicsRotation | Rotation transformation around a given axis |
QGraphicsScale | Scale transformation |
QGraphicsTransform | Abstract base class for building advanced transformations on QGraphicsItems |
QGraphicsWebView | Allows web content to be added to a GraphicsView |
QHistoryState | Means of returning to a previously active substate |
QKeyEventTransition | Transition for key events |
QMargins | Defines the four margins of a rectangle |
QMatrix4x4 | Represents a 4x4 transformation matrix in 3D space |
QMouseEventTransition | Transition for mouse events |
QParallelAnimationGroup | Parallel group of animations |
QPauseAnimation | Pause for QSequentialAnimationGroup |
QProcessEnvironment | Holds the environment variables that can be passed to a program |
QPropertyAnimation | Animates Qt properties |
QProxyStyle | Convenience class that simplifies dynamically overriding QStyle elements |
QQuaternion | Represents a quaternion consisting of a vector and scalar |
QS60Style | Look and feel suitable for applications on S60 |
QScopedPointer | Stores a pointer to a dynamically allocated object, and deletes it upon destruction |
QSequentialAnimationGroup | Sequential group of animations |
QSignalTransition | Transition based on a Qt signal |
QState | General-purpose state for QStateMachine |
QStateMachine | Hierarchical finite state machine |
QTileRules | |
QTouchEvent | Contains parameters that describe a touch event |
QVariantAnimation | Abstract base class for animations |
QVector2D | Represents a vector or vertex in 2D space |
QVector3D | Represents a vector or vertex in 3D space |
QVector4D | Represents a vector or vertex in 4D space |
QVideoFrame | Representation of a frame of video data |
QVideoSurfaceFormat | Specifies the stream format of a video presentation surface |
QWebElement | Convenient access to DOM elements in a QWebFrame |
QWebInspector | Allows the placement and control of a QWebPage's inspector. The inspector allows you to see a page current hierarchy and loading statistics |
QWebPluginDatabase | Interface for managing Netscape plugins used by WebKit in QWebPages |
QWebPluginInfo | Represents a single Netscape plugin |
QWidget | The base class of all user interface objects |
QXmlSchema | Loading and validation of a W3C XML Schema |
QXmlSchemaValidator | Validates XML instance documents against a W3C XML Schema |
QStateMachine::SignalEvent | Represents a Qt signal event |
QTouchEvent::TouchPoint | Information about a touch point in a QTouchEvent |
QStateMachine::WrappedEvent | Holds a clone of an event associated with a QObject |
Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies) | Trademarks | Qt 4.6.0 |