1 Qt 3.1 introduces many significant new features and many improvements
2 over the 3.0.x series. This file provides an overview of the main
3 changes since version 3.0.x. For further details see the online
4 documentation which is included in this distribution, and also
5 available at http://qt.nokia.com/doc/.
7 The Qt version 3.1 series is binary compatible with the 3.0.x series:
8 applications compiled for 3.0 will continue to run with 3.1.
11 ****************************************************************************
13 ****************************************************************************
15 Qt Script for Applications
16 --------------------------
17 Qt 3.1 is the first Qt release that can be used with Qt Script for
18 Applications (QSA). QSA provides a scripting engine, an IDE for
19 creating and editing scripts and script forms, and bindings to the Qt
20 API. Script-enabling a Qt application is not difficult and the IDE
21 makes it easy for resellers and end-users to write their own scripts.
22 QSA is due for release after Qt 3.1.
27 Qt Designer, the visual GUI builder, has undergone several usability
28 improvements. A new dialog for creating and editing signals and slots
29 connections has been created: it is much easier to use and much faster
30 for setting up multiple connections. The widgets are now presented in
31 an easy-to-use toolbox rather than in toolbars (although you can still
32 have the toolbars if you want). The property editor now handles common
33 properties in multiple widgets simultaneously. By popular demand,
34 WYSIWYG support for QWidgetStack has been added. Rich text is now
35 supported with a rich text editor. And the code editor can be used for
36 ordinary member functions as well as for slots.
41 Qt Assistant, the Qt documentation browser, can now be used with
42 custom documentation sets. This new functionality combined with the
43 new QAssistantClient class means that you can use Qt Assistant as a
44 help browser for your own applications. Qt Assistant has also been
45 enhanced by the addition of a fast full text search engine.
50 The general industry-wide move away from Motif is leaving more and
51 more companies in need of a migration solution. But converting large
52 legacy applications in one step is often impractical. To minimize
53 risks and to manage the workload companies often want to port code on
54 a module by module basis. Qt 3.1 includeds a completely new Motif
55 module that supports hybrid applications in which Qt code and Motif
56 code coexist. (This obsoletes the earlier rudimentary Qt Xt/Motif
62 With the release of Qt 3.1, customers who use Qt for Microsoft Windows
63 development can now use Qt with ActiveX. The new ActiveQt module
64 provides a simple API for COM and ActiveX. The module can be used to
65 create applications which host ActiveX controls, and also to create
66 applications that serve ActiveX controls (e.g. Internet Explorer
72 The introduction of Qt/Mac, a Mac OS X port of Qt, with Qt 3.0 has
73 proved a great success. This port has undergone many improvements in
74 Qt 3.1, especially with respect to Appearance Manager, anti-aliased
75 text and user settings. The Qt OpenGL support is greatly improved, and
76 uses the hardware-accelerated drivers.
81 Graphics, mouse and keyboard drivers can now be compiled as plugins.
86 In addition to the new additions and enhancements referred to above,
87 as with all major Qt releases, Qt 3.1 includes hundreds of
88 improvements in the existing class library. Here is a brief summary of
89 the most significant changes:
91 - QTextEdit has a new text format: LogText. This is a performance and
92 memory optimized format especially designed for the fast display of
93 large amounts of text. The format supports basic highlighting,
94 including bold and colored text.
96 - The new QSyntaxHighlighter class makes it both easy and efficient to
97 add syntax highlighting capabilities to a QTextEdit.
99 - QHttp and QFtp in earlier Qt's were implementations of the
100 QNetworkProtocol. Both have been extended to stand in their own
101 right. If you missed some flexibility in the network protocol
102 abstractions of earlier Qt's, the new QHttp and QFtp classes should
103 provide the solution.
105 - QAccel, used to handle keyboard shortcuts, now gracefully copes with
106 shortcut clashes. If a clash occurs, a new signal,
107 activatedAmbiguously(), is emitted. Classes that use QAccel, like
108 QButton's subclasses and QPopupMenu, make use of this new
109 functionality. Futhermore QAccel can now handle multi-key sequences,
110 for example, Ctrl+X,Ctrl+F.
112 - QClipboard has been extended to simplify data exchange between
115 - Thread support: almost all methods in the tools classes have been
116 made reentrant. QApplication::postEvent() and a few other methods
117 are now thread-safe if Qt is compiled as a multi-threaded library.
118 (The documentation now states if a class or function is thread-safe
121 - A QMutexLocker class has been added to simplify the locking and
122 unlocking of mutexes.
124 - Input methods: A selectionLength() function has been added to
125 QIMEvent. Japanese compositions are now handled correctly. Support
126 for AIMM based input methods (those working on non-Asian versions of
127 Win95/98/Me) has been added.
129 - Large File support: Qt's internals have been modified to support
130 Large Files (> 2GB). QFileDialog will now correctly display and
133 - SQL module: Support for prepared query execution and value binding
134 has been added. Among other benefits, this makes it possible to
135 write large BLOBs (> 2 KB) to Oracle databases, and to write Unicode
136 strings to SQL Server databases.
138 - Support for XIM on Solaris.
142 The build process has been improved:
144 - The configure script does not need QTDIR to be set anymore.
146 - Improved support for building Qt on MSVC.NET.
149 ****************************************************************************
151 ****************************************************************************
154 Corrected illegal accelerator state when using multiple
155 keysequences. (Resulted in no accelerator being triggered when
156 there's a partial match). Only triggers on enabled
157 accelerators and their enabled items. Eats all keys in a
158 keysequence, not just the first and last.
161 Speed-optimized replace().
164 Applies to printable data streams only: If the version number
165 of the device is less than 4, use the same streaming format
166 that was used in Qt 2.3 and earlier.
169 Respect read-only columns. Make it possible to swap columns.
172 Added a standard widget constructor (taking a QWidget *parent,
173 const char *name and WFlags). Improved docking behavior.
176 Windows only: make Qt's filedialog work properly with network
180 Windows only: Fixed QFontMetrics::boundingRect( QChar c ) to
181 work for non-TrueType fonts.
184 Optimized the sectionSizeHint() calculation, which in turn
185 speeds up all QHeader size/label calculations.
188 Avoid infinite loops when recursively calling
192 Fixed navigation and selection with arrow keys. Some speedups
196 Treat Unicode characters in string defined sequences
197 correctly. So, now letters like Æ, Ø and Å should work as
198 accelerators, even through translation files.
201 alignmentRect() respects the layout's maximum size.
204 Added a lostFocus() signal. Double-clicking only uses spaces
205 as word bounderies for the selection now, not dots, commas,
206 etc. Support double-click+mousemove selection.
209 Fixed the item which is passed into the contextMenuRequested()
210 signal (this was sometimes wrong). Don't select items that are
214 Shift selection in Extended mode now follows Windows
215 Shift-selection standard. Erase empty area when drawing
216 listviews without columns. Only drops on drop-enabled items
220 Optimized size claculation for multi-line items.
223 Base the minimumSizeHint() on the sizeHint()s of the left hand
224 dock area (instead of the minimumSize()).
227 Fixed broken Alt release detection. Fixed flickering. Fixed
228 empty menubars resizing properly.
231 Fixed return value of disconnect(). Fixed disconnect()ing
232 SIGNALs from SIGNALs and disconnect()ing multiple SLOTs with
233 the same name from a SIGNAL.
236 Unix only: Don't eat the file descriptors if a lot of
237 processes (with short runtimes) are started immediately after
241 Make the driver compile with the standard PostgreSQL source
242 distribution under Windows. Better handling of network,
243 datetime and geometrical datatypes.
246 Fixed setRects() to calculate the bounding rectangle
250 Doesn't reposition the view when the user is scrolling the
254 Fixed setValue() so that any not-yet-interpreted input is
255 ignored when setting a new value.
258 Support QTextCodec::codecForCStrings(). Support
259 std::string<==>QString conversion when STL support is on.
261 - QSyntaxHighlighter:
262 Added function rehighlight(). Improved internals to be more
263 efficient (less calls to highlightParagraph() necessary).
266 Fixed Tab/BackTab handling to always work. Fixed
267 setColumnLabels() and setRowLabels().
269 - QTableItem (and subclasses):
270 Now supports global struts. (See QApplication::globalStrut().)
273 Added support for binary datatypes.
276 Added QTextCodec::codecForCStrings and QTextCodec::codecForTr.
279 Fixed a painting error which resulted in areas of the textedit
280 not being erased correctly. Make sure repainting is done after
281 changing the underline-links setting. Renamed 'allowTabs'
282 property to 'tabChangesFocus' (inverted value). Added a new
283 property 'autoFormatting'. When exporting HTML also quote
284 quotes. Fixed a background erasing bug which messed up the
288 Recognize Windows drive letters not only in the form of "c:/"
289 but also in the form "c:" (without the '/').
292 Fixed some visibility issues.
294 ****************************************************************************
296 ****************************************************************************
298 - Now displays the classname of "gray box" custom widgets in the gray
301 - Accept tildes (~) in the project settings.
303 - A new command line tool conv2ui (in qt/tools/designer/tools) has
304 been added, to convert dialog description files from different file
305 formats to .ui files without the need to invoke Qt Designer. This
306 tool uses the same plugins as Qt Designer for loading other dialog
309 - An import filter for .kdevdlg files has been added.
311 - Actions in the action editor are now sortable.
313 - Improved usability of more dialogs (in-place renaming, drag'n'drop,
316 - Preserve creation order of forward declarations, variables, etc.
318 - Save comments for actions.
320 - uic: Fixed generating code for QStringList properties.
322 ****************************************************************************
324 ****************************************************************************
326 - Fixed some accelerator conflicts.
328 ****************************************************************************
330 ****************************************************************************
332 - Handle trailing backslash in strings correctly in lupdate.
334 ******************************** END ***************************************