2 Qt 2.2 introduces new features as well as many improvements over the
3 2.1.x series. This file will only give an overview of the main changes
4 since version 2.1. A complete list would simply be too large to be
5 useful. For more detail see the online documentation which is
6 included in this distribution, and also available on
7 http://qt.nokia.com/doc/
9 The Qt version 2.2 series is binary compatible with the 2.1.x and
10 2.0.x series - applications compiled for 2.0 or 2.1 will continue to
13 As with previous Qt releases, the API and functionality of Qt is
14 completely portable between Microsoft Windows and X11. It is also
15 portable between Windows 95, 98, NT and 2000.
17 ****************************************************************************
19 ****************************************************************************
21 The greatest new feature in the 2.2 release is the Qt Designer, a
22 visual GUI design tool. It makes it possible to cut down on
23 development time even further through WYSIWYG dialog design. The
24 designer makes use of improved runtime flexibility and a revised
25 property system. Please see $QTDIR/doc/html/designer.html for a
28 Qt 2.2 integrates now fully on MS-Windows 2000. This includes fade
29 and scroll effects for popup windows and title bar gradients for MDI
30 document windows in the MDI module. As with all Qt features, we
31 provide the same visual effects on Unix/X11.
33 Two new classes QAction and QActionGroup make it much easier to
34 create sophisticated main windows for today's applications. A QAction
35 abstracts a user interface action that can appear both in menus and
36 tool bars. An action group makes it easier to deal with groups of
37 actions. It allows to add, remove or activate its children with a
38 single call and provides "one of many" semantics for toggle
39 actions. Changing an action's properties, for example using
40 setEnabled(),setOn() or setText(), immediately shows up in all
43 Few people consider the original OSF Motif style the most elegant or
44 flashy GUI style. Therefore several attempts have been made to come up
45 with a slightly improved Motif-ish look and feel. One of them is the
46 thinner CDE style, that was supported by Qt since version 2.0. In the
47 2.2 release, we now added support for SGI's very own Motif version on
48 IRIX workstations. With its more elegant bevelling of 3D elements and
49 mouse-under highlight effects, it is quite appealing. For Linux users,
50 we added a Motif plus style, that resembles the bevelling used by the
51 GIMP toolkit (GTK+). Optionally, this style also does hovering
54 Last but not least we added support for multi-threaded
55 applications. The classes involved are QThread to start threads,
56 QMutex to serialize them and QCondition to signal the occurrence of
57 events between threads ("condition variables").
59 Another major change was done regarding distribution. In order to
60 address the steady growth of functionality in the Qt library, we
61 split the source code into distinct modules that can be compiled
62 in (or left out) separately. This also makes it possible for us to
63 keep the cost of entry into the commercial Qt world as low as possible.
65 The modules available in Qt 2.2 are:
67 - Tools: platform-independent Non-GUI API for I/O, encodings, containers,
68 strings, time & date, and regular expressions.
70 - Kernel: platform-independent GUI API, a complete window-system API.
72 - Widgets: portable GUI controls.
74 - Dialogs: ready-made common dialogs for selection of colors, files,
75 printers, fonts, and basic types, plus a wizard framework, message
76 boxes and progress indicator.
78 - OpenGL 3D Graphics: integration of OpenGL with Qt, making it very
79 easy to use OpenGL rendering in a Qt application.
81 - Network: advanced socket and server-socket handling plus
82 asynchronous DNS lookup.
84 - Canvas: a highly optimized 2D graphic area.
86 - Table: a flexible and editable table widget
88 - IconView: a powerful visualization widget similar to QListView and
89 QListBox. It contains optionally labelled pixmap items that the user
90 can select, drag around, rename, delete and more.
92 - XML: a well-formed XML parser with SAX interface plus an
93 implementation of the DOM Level1
95 - Workspace: a workspace window that can contain decorated document
96 windows for Multi Document Interfaces (MDI).
99 Network, Canvas, Table and XML are entirely new modules.
101 Below is a list of the major new features in existing classes as well
102 as short descriptions of all new classes.
105 ****************************************************************************
106 * New major features in existing classes *
107 ****************************************************************************
109 QApplication: - "global strut", an adjustable minimum size for interactable
110 control elements like the entries in a listbox, useful for
111 touch-screens. Popup window effects ( setEffectEnabled() )
112 and more threading support ( guiThreadTaken(), lock(),
113 unlock(), locked() ).
115 QCheckBox: - "tristate" is now a property.
117 QClipboard: - text() supports subtypes.
119 QComboBox: - "editable" is now a property that is changeable at runtime
121 QDialog: - support for extensible dialogs ("More...") with
122 setExtension() and setOrientation(). Optional size grip.
124 QFont: - new functions styleStrategy() and setStyleHint()
126 QIconSet: - new constructor that takes both a small and a large pixmap
128 QKeyEvent: - numeric keypad keys now set a Keypad flag
130 QLabel: - support for scaled pixmap contents, "pixmap" as property
132 QLayout: - improved flexibility with setEnabled(), access to the
133 laid out menu bar with menuBar().
135 QListView: - "showSortIndicator" as property. New function
136 QListViewItem::moveItem() to simplify drag and drop.
138 QMovie: - new functions pushSpace(), pushData(), frameImage()
140 QMultiLineEdit: - new functions pasteSubType() and copyAvailable()
142 QObject: - new function normalizeSignalSlot(), tr() now supports a comment.
144 QPicture: - streaming to and from QDataStream
146 QPopupMenu: - new signal aboutToHide()
148 QRegExp: - new functions setPattern() and find()
150 QRegion: - new function setRects()
152 QScrollView: - new property "staticBackground" to define a pixmap
153 background that does not scroll with the contents.
155 QStatusBar: - "sizeGripEnabled" as property
157 QStyle: - themable menu bars with drawMenuBarItem(). New functions
158 buttonMargin(), toolBarHandleExtent(), sliderThickness()
160 QTabWidget: - new functions currentPageIndex(), setCurrentPage(), new
161 signal currentChanged(). Similar extensions to QTabBar
164 QTranslator: - new algorithmen for faster lookup. No more risk of
165 "hash collisions" when many translators are loaded.
167 QVariant: - new subtype QSizePolicy. Necessary for QWidget's
168 new sizePolicy property.
170 QWidget: - new properties "sizePolicy", "ownPalette", "ownFont",
171 "ownCursor" and "hidden". The size policy is now adjustable
172 at runtime with setSizePolicy(). Added convenience slot
173 setDisabled(). Fast geometry mapping functions mapTo() and
174 mapFrom(). On X11, support for a new background mode
177 QWizard: - runtime changable titles with setTitle(), new signal
180 QWorkspace: - support for more widget flags like WType_Tool. Titlebar
181 blending effects on MS-Windows 98/2000.
184 ****************************************************************************
186 ****************************************************************************
188 QAction - Abstracts a user interface action that can appear both in
189 menus and tool bars. Changing an action's properties, for
190 example using setEnabled(),setOn() or setText(),
191 immediately shows up in all representations.
193 QActionGroup - Combines actions to a group. An action group makes it easier
194 to deal with groups of actions. It allows to add, remove or
195 activate its children with a single call and provides
196 "one of many" semantics for toggle actions.
198 QDial - A rounded rangecontrol (like a speedometer or
199 potentiometer). Both API- and UI-wise the dial is very
200 similar to a QSlider.
202 QDom - [XML Module] DOM Level 1 Tree
204 QMotifPlusStyle - This class implements a Motif-ish look and feel with more
205 sophisticated bevelling as used by the GIMP toolkit (GTK+)
208 QMutex: - Provides access serialization between threads.
210 QSemaphore: - A robust integer semaphore. Another way of thread
213 QThread - Baseclass for platform-independent threads.
215 QWaitCondition - Provides signalling of the occurrence of events between
216 threads ("condition variables")
218 QCanvas - [Canvas Module] a highly optimized 2D graphic area.
220 QTable - [Table Module] a flexible and editable table widget
222 QXML - [XML Module] XML parser with SAX interface