2 Qt 3.2 introduces new features as well as many improvements over the
3 3.1.x series. This file gives an overview of the main changes since
4 version 3.1.2. For more details, see the online documentation which
5 is included in this distribution. The documentation is also available
6 at http://qt.nokia.com/doc/
8 The Qt version 3.2 series is binary compatible with the 3.1.x series.
9 Applications compiled for 3.1 will continue to run with 3.2.
11 ****************************************************************************
13 ****************************************************************************
18 New classes have been added to the Qt Library including a
19 class to add splash screens to applications (QSplashScreen), a toolbox
20 widget that provides a column of tabbed widgets (QToolBox), and a
21 class to manage per-thread data storage (QThreadStorage).
23 The SQL module received a fair bit of attention this time. The most
24 notable improvements include a native IBM DB2 driver, complete support
25 for stored procedures including the possibility to access
26 out-parameters, and native support for 64 bit fields without having to
27 convert to or from strings. We also added support for setting
28 connection parameters. This way you can, for example, conveniently
29 open an SSL connection to a MySQL or PostgreSQL database. If you need
30 even more customization, e.g. for an Oracle database, you can set up
31 the connection yourself and instantiate a Qt driver object on top of
32 it. An extended SQL cursor class has been added that makes it more
33 convenient to display result sets from general SQL queries
34 (QSqlSelectCursor). QSqlDatabase::tables() is now capable to return
35 tables, views and/or system tables. In addition, you can add custom
36 database drivers without compiling them as plugins
37 (see QSqlDatabase::registerSqlDriver()).
39 QLineEdit, the one-line text editor, now supports validation input
40 masks. The feature complements the previous QValidator concept and
41 allows e.g. restriction of input to the IP address format (mask
42 "990.990.990.990;_"), or to ISO date format (mask "0000-90-90;0").
44 Qt's unicode code support has been extended. Most notably, full
45 support for Indic scripts has been added, covering writing systems
46 such as Devanagari, Tamil and Bengali. The group of right to left
47 writing systems has been extended with support for Syriac. Both
48 improvements are available on both Windows with Uniscribe installed,
49 and on Unix/X11 when using XFT with OpenType fonts.
51 All tool classes that support STL-like iterators with begin() and
52 end(), contain two extra functions constBegin() and constEnd(). The
53 const versions always return const iterators, and thus can be a little
54 bit faster with Qt's implicitly shared containers.
56 QPainter's complex drawText() function has been highly
57 optimized. Despite its support for complex unicode scripts, it now
58 performs better than its less unicode-capable counterpart in Qt 2.3.
60 QPixmap now supports pixmaps with alpha channel (semi transparency) on
61 all Windows versions except Windows 95 and Windows NT 4.0.
63 The print dialog now supports "selection" as a print range as well as
64 the possibility to enable/disable all different printer options
67 On Windows, the Qt installation includes a toolbar for Visual Studio.NET
68 that provides an integration of the Qt tools (ie. Qt Designer) with the
71 Many classes were improved; see the detailed overview that follows.
76 Dialog handling has matured and has been extended since the
77 extension's introduction in Qt 3.1. The documentation and code
78 examples have been improved, including a walkthrough that covers the
79 complete migration of a real-world Motif example to Qt. The process
80 contains four intermediate steps where the application utilizes both
86 Type handling has been extended on both the container and the server
87 side. The new supported types are byte arrays and 64bit integers. The
88 QAxServer module supports aggregation, as well as QObject subclasses as
89 return and parameter types of slots, and allows error reporting through
91 The Designer integration has been extended to support property dialogs
92 implemented by the control server.
93 Controls developed with ActiveQt support aggregation, which makes it
94 possible to use them in containers that require this form of containment to
95 be supported. ActiveQt also supports masked controls in containers that
96 support this for window'ed controls.
101 The popup menu editor has been rewritten. The new editor provides the
102 the ability to add, edit and remove menus and menu items directly in
103 the menubar and in the popup menu. Navigation and editing can be done
104 using either the mouse or the keyboard.
106 The property editor now allows editing of properties with or'd values
109 Designer also supports the new QToolBox widget in a similar fashion to
115 Profiles have been introduced to allow applications to extend the use
116 of Qt Assistant as a help system. Profiles describe the documentation
117 to use so that only application specific documentation will be
118 referenced in an end user installation. Profiles also allow some
119 customization of the look in Qt Assistant. For detailed information,
120 see the helpdemo example in $QTDIR/examples/helpdemo.
122 Profiles replace the content files and categories system. The
123 following command line options are removed since they no longer serve
124 any purpose: addContentFile, removeContentFile, category, and
127 Qt Assistant has multiple tabs for browsing, therefore enabling
128 multiple pages to be browsed without opening a new window.
130 It is possible to specify a default home page.
132 It is possible to specify a PDF reader so that urls to PDF files can
133 be opened from Qt Assistant.
138 Note: Qt 3.2 is the last version to officially support IRIX MIPSpro
139 o32 and Sun CC 5.0. A script, $QTDIR/bin/qt32castcompat, is provided
140 for 3.2 which needs to be run for these compilers.
145 Users of the 3.2.0 beta releases please note: The QWidgetContainerPlugin
146 interfaces was removed from the final release due to some serious issues.
148 ****************************************************************************
150 ****************************************************************************
152 - QAction / QActionGroup
153 Simplified constructors so that it is no longer necessary to
154 specify texts for buttons and menu items separately.
155 For action groups, we fixed the enable/disable behavior. If
156 an action inside an action group is explicitly disabled, it is
157 no longer implicitly enabled together with the group.
158 This is identical to enabling/disabling widgets and their
162 Added the aboutQt() slot for convenience.
165 Added the new function, setArguments(), that invokes Qt
166 Assistant in different modes.
169 Added the new function, asVariant(), that passes a COM
170 object through dynamicCall().
173 Added the new function, reportError(), that sends error
174 information to the ActiveX client.
177 Added the new static function, colorNames(), that retrieves a
178 list of all color names known to Qt.
181 Now also supports QDir, QFileInfo, and QStringList.
184 Now has long and ulong support for setAttribute() and
188 Added the new properties: stretch and overline. Added the new
189 function, resolve(), that copies unspecified attributes from
193 Added a new overload for families() that restricts the
194 returned list to fonts supporting a specific QFont::Script,
195 e.g. QFont::Greek, QFont::Devanagari or QFont::Arabic.
197 - QFontInfo / QFontMetrics
198 Added new constructors that force the info and metrics objects
199 to use a given QFont::Script.
202 Added a new constructor that takes a QGLContext
203 parameter. Makes the undocumented setContext() obsolete.
206 Added getters for the sort indicator (sortIndicatorSection()
207 and sortIndicatorOrder() ).
210 Added a new overload for save() that writes to a given
214 Added tristate support to check list items
215 (QCheckListItem::setTristate()). Added the new function,
216 setSelectionAnchor(), to set the list view's selection anchor
220 Added input masks: setInputMask(), inputMask(), and
221 hasAcceptableInput(). Added new function selectionStart()
222 which returns the index of the first selected character in the
226 Added customizable focus rectangle policy.
229 Added the new static function, question(), that complements
230 the existing information(), warning() and fatal() functions.
232 - QMotifDialog [Qt Motif Extension]
233 Now has two distinct modes of operation: 1) it allows a Motif
234 dialog to have a Qt parent, and 2) it allows a Qt dialog to have
238 Better support for MySQL/embedded.
241 Added the new function, remove(), to explicitly remove a
242 pixmap from the cache.
245 Added the new functions: setPrintRange(), printRange(),
246 setOptionEnabled(), and optionEnabled(). For Windows only,
247 added the new function, setWinPageSize(), that allows setting
248 DEVMODE.dmPaperSize directly.
251 Added STL-like iterators with begin(), end(), and erase().
254 Maintains a user defined size policy when the direction
257 - QSplashScreen [new]
258 This new widget class provides a splash screen to be shown
259 during application startup.
262 Added the new properties: opaqueResize, childrenCollapsible,
266 Added a couple of convenience functions: text(), which returns
267 the concatenated database and driver texts. showMessage(),
268 which will pop up a QMessageBox with the text that text()
272 Added overloads for the bindValue() call which makes it
273 possible to specifiy what role a bound value should have: In,
276 - QSqlSelectCursor [new]
277 This new QSqlCursor subclass provides browsing of general SQL
281 Added overloaded tables() call which can return tables, views
282 and/or system tables.
285 Calling tables() with no arguments will only return table names,
286 instead of table and view names as in Qt 3.1.
287 The new tables() call in QSqlDatabase can be used to get
288 table and/or view names.
291 Added 64 bit support. Added the new functions: multiArg(),
292 reserve(), capacity(), squeeze(). Added case insensitive
293 overloads for startsWith() and endsWidth().
296 Added the new function gres().
299 Added support for toolbox, header, MDI frame, table grid line
300 color, line edit password character, and message box question.
303 Added the new function, currentParagraph().
306 Added support for custom widgets to be placed beside
307 the tab bar: setCornerWidget() and cornerWidget().
310 In Log mode, added the new functions: setMaxLogLines() and
311 maxLogLines(). Implemented insertAt() for LogText mode.
313 - QThreadStorage [new]
314 This new tool class provides per-thread data storage, also
315 referred to as thread local storage or TLS.
318 This new widget class provides a column of tabbed widgets, one
319 above the other, with the current page displayed below the
323 Added support for LongLong and ULongLong.
326 Added a new widget flag, WNoAutoErase, that combines the now
327 obsolete WResizeNoErase and WRepaintNoErase flags.