335 lines
12 KiB
Plaintext
335 lines
12 KiB
Plaintext
Qt 3.1 introduces many significant new features and many improvements
|
||
over the 3.0.x series. This file provides an overview of the main
|
||
changes since version 3.0.x. For further details see the online
|
||
documentation which is included in this distribution, and also
|
||
available at http://qt.nokia.com/doc/.
|
||
|
||
The Qt version 3.1 series is binary compatible with the 3.0.x series:
|
||
applications compiled for 3.0 will continue to run with 3.1.
|
||
|
||
|
||
****************************************************************************
|
||
* General *
|
||
****************************************************************************
|
||
|
||
Qt Script for Applications
|
||
--------------------------
|
||
Qt 3.1 is the first Qt release that can be used with Qt Script for
|
||
Applications (QSA). QSA provides a scripting engine, an IDE for
|
||
creating and editing scripts and script forms, and bindings to the Qt
|
||
API. Script-enabling a Qt application is not difficult and the IDE
|
||
makes it easy for resellers and end-users to write their own scripts.
|
||
QSA is due for release after Qt 3.1.
|
||
|
||
|
||
Qt Designer
|
||
-----------
|
||
Qt Designer, the visual GUI builder, has undergone several usability
|
||
improvements. A new dialog for creating and editing signals and slots
|
||
connections has been created: it is much easier to use and much faster
|
||
for setting up multiple connections. The widgets are now presented in
|
||
an easy-to-use toolbox rather than in toolbars (although you can still
|
||
have the toolbars if you want). The property editor now handles common
|
||
properties in multiple widgets simultaneously. By popular demand,
|
||
WYSIWYG support for QWidgetStack has been added. Rich text is now
|
||
supported with a rich text editor. And the code editor can be used for
|
||
ordinary member functions as well as for slots.
|
||
|
||
|
||
Qt Assistant
|
||
------------
|
||
Qt Assistant, the Qt documentation browser, can now be used with
|
||
custom documentation sets. This new functionality combined with the
|
||
new QAssistantClient class means that you can use Qt Assistant as a
|
||
help browser for your own applications. Qt Assistant has also been
|
||
enhanced by the addition of a fast full text search engine.
|
||
|
||
|
||
Motif
|
||
-----
|
||
The general industry-wide move away from Motif is leaving more and
|
||
more companies in need of a migration solution. But converting large
|
||
legacy applications in one step is often impractical. To minimize
|
||
risks and to manage the workload companies often want to port code on
|
||
a module by module basis. Qt 3.1 includeds a completely new Motif
|
||
module that supports hybrid applications in which Qt code and Motif
|
||
code coexist. (This obsoletes the earlier rudimentary Qt Xt/Motif
|
||
extension.)
|
||
|
||
|
||
ActiveX
|
||
-------
|
||
With the release of Qt 3.1, customers who use Qt for Microsoft Windows
|
||
development can now use Qt with ActiveX. The new ActiveQt module
|
||
provides a simple API for COM and ActiveX. The module can be used to
|
||
create applications which host ActiveX controls, and also to create
|
||
applications that serve ActiveX controls (e.g. Internet Explorer
|
||
plugins).
|
||
|
||
|
||
Qt/Mac
|
||
------
|
||
The introduction of Qt/Mac, a Mac OS X port of Qt, with Qt 3.0 has
|
||
proved a great success. This port has undergone many improvements in
|
||
Qt 3.1, especially with respect to Appearance Manager, anti-aliased
|
||
text and user settings. The Qt OpenGL support is greatly improved, and
|
||
uses the hardware-accelerated drivers.
|
||
|
||
|
||
Qt/Embedded
|
||
-----------
|
||
Graphics, mouse and keyboard drivers can now be compiled as plugins.
|
||
|
||
|
||
Qt library
|
||
----------
|
||
In addition to the new additions and enhancements referred to above,
|
||
as with all major Qt releases, Qt 3.1 includes hundreds of
|
||
improvements in the existing class library. Here is a brief summary of
|
||
the most significant changes:
|
||
|
||
- QTextEdit has a new text format: LogText. This is a performance and
|
||
memory optimized format especially designed for the fast display of
|
||
large amounts of text. The format supports basic highlighting,
|
||
including bold and colored text.
|
||
|
||
- The new QSyntaxHighlighter class makes it both easy and efficient to
|
||
add syntax highlighting capabilities to a QTextEdit.
|
||
|
||
- QHttp and QFtp in earlier Qt's were implementations of the
|
||
QNetworkProtocol. Both have been extended to stand in their own
|
||
right. If you missed some flexibility in the network protocol
|
||
abstractions of earlier Qt's, the new QHttp and QFtp classes should
|
||
provide the solution.
|
||
|
||
- QAccel, used to handle keyboard shortcuts, now gracefully copes with
|
||
shortcut clashes. If a clash occurs, a new signal,
|
||
activatedAmbiguously(), is emitted. Classes that use QAccel, like
|
||
QButton's subclasses and QPopupMenu, make use of this new
|
||
functionality. Futhermore QAccel can now handle multi-key sequences,
|
||
for example, Ctrl+X,Ctrl+F.
|
||
|
||
- QClipboard has been extended to simplify data exchange between
|
||
programs.
|
||
|
||
- Thread support: almost all methods in the tools classes have been
|
||
made reentrant. QApplication::postEvent() and a few other methods
|
||
are now thread-safe if Qt is compiled as a multi-threaded library.
|
||
(The documentation now states if a class or function is thread-safe
|
||
or reentrant.)
|
||
|
||
- A QMutexLocker class has been added to simplify the locking and
|
||
unlocking of mutexes.
|
||
|
||
- Input methods: A selectionLength() function has been added to
|
||
QIMEvent. Japanese compositions are now handled correctly. Support
|
||
for AIMM based input methods (those working on non-Asian versions of
|
||
Win95/98/Me) has been added.
|
||
|
||
- Large File support: Qt's internals have been modified to support
|
||
Large Files (> 2GB). QFileDialog will now correctly display and
|
||
select large files.
|
||
|
||
- SQL module: Support for prepared query execution and value binding
|
||
has been added. Among other benefits, this makes it possible to
|
||
write large BLOBs (> 2 KB) to Oracle databases, and to write Unicode
|
||
strings to SQL Server databases.
|
||
|
||
- Support for XIM on Solaris.
|
||
|
||
Build process
|
||
-------------
|
||
The build process has been improved:
|
||
|
||
- The configure script does not need QTDIR to be set anymore.
|
||
|
||
- Improved support for building Qt on MSVC.NET.
|
||
|
||
|
||
****************************************************************************
|
||
* Library *
|
||
****************************************************************************
|
||
|
||
- QAccel:
|
||
Corrected illegal accelerator state when using multiple
|
||
keysequences. (Resulted in no accelerator being triggered when
|
||
there's a partial match). Only triggers on enabled
|
||
accelerators and their enabled items. Eats all keys in a
|
||
keysequence, not just the first and last.
|
||
|
||
- QCString:
|
||
Speed-optimized replace().
|
||
|
||
- QDataStream:
|
||
Applies to printable data streams only: If the version number
|
||
of the device is less than 4, use the same streaming format
|
||
that was used in Qt 2.3 and earlier.
|
||
|
||
- QDataTable:
|
||
Respect read-only columns. Make it possible to swap columns.
|
||
|
||
- QDockWindow:
|
||
Added a standard widget constructor (taking a QWidget *parent,
|
||
const char *name and WFlags). Improved docking behavior.
|
||
|
||
- QFileDialog:
|
||
Windows only: make Qt's filedialog work properly with network
|
||
paths.
|
||
|
||
- QFontMetrics:
|
||
Windows only: Fixed QFontMetrics::boundingRect( QChar c ) to
|
||
work for non-TrueType fonts.
|
||
|
||
- QHeader:
|
||
Optimized the sectionSizeHint() calculation, which in turn
|
||
speeds up all QHeader size/label calculations.
|
||
|
||
- QIconFactory:
|
||
Avoid infinite loops when recursively calling
|
||
QPixmap::pixmap().
|
||
|
||
- QIconView:
|
||
Fixed navigation and selection with arrow keys. Some speedups
|
||
when repainting.
|
||
|
||
- QKeySequence:
|
||
Treat Unicode characters in string defined sequences
|
||
correctly. So, now letters like <20>, <20> and <20> should work as
|
||
accelerators, even through translation files.
|
||
|
||
- QLayout:
|
||
alignmentRect() respects the layout's maximum size.
|
||
|
||
- QLineEdit:
|
||
Added a lostFocus() signal. Double-clicking only uses spaces
|
||
as word bounderies for the selection now, not dots, commas,
|
||
etc. Support double-click+mousemove selection.
|
||
|
||
- QListBox:
|
||
Fixed the item which is passed into the contextMenuRequested()
|
||
signal (this was sometimes wrong). Don't select items that are
|
||
not selectable.
|
||
|
||
- QListView:
|
||
Shift selection in Extended mode now follows Windows
|
||
Shift-selection standard. Erase empty area when drawing
|
||
listviews without columns. Only drops on drop-enabled items
|
||
that accept drops.
|
||
|
||
- QListViewItem:
|
||
Optimized size claculation for multi-line items.
|
||
|
||
- QMainWindow:
|
||
Base the minimumSizeHint() on the sizeHint()s of the left hand
|
||
dock area (instead of the minimumSize()).
|
||
|
||
- QMenuBar:
|
||
Fixed broken Alt release detection. Fixed flickering. Fixed
|
||
empty menubars resizing properly.
|
||
|
||
- QObject:
|
||
Fixed return value of disconnect(). Fixed disconnect()ing
|
||
SIGNALs from SIGNALs and disconnect()ing multiple SLOTs with
|
||
the same name from a SIGNAL.
|
||
|
||
- QProcess:
|
||
Unix only: Don't eat the file descriptors if a lot of
|
||
processes (with short runtimes) are started immediately after
|
||
each other.
|
||
|
||
- QPSQLDriver:
|
||
Make the driver compile with the standard PostgreSQL source
|
||
distribution under Windows. Better handling of network,
|
||
datetime and geometrical datatypes.
|
||
|
||
- QRegion:
|
||
Fixed setRects() to calculate the bounding rectangle
|
||
correctly.
|
||
|
||
- QScrollView:
|
||
Doesn't reposition the view when the user is scrolling the
|
||
view.
|
||
|
||
- QSpinBox:
|
||
Fixed setValue() so that any not-yet-interpreted input is
|
||
ignored when setting a new value.
|
||
|
||
- QString:
|
||
Support QTextCodec::codecForCStrings(). Support
|
||
std::string<==>QString conversion when STL support is on.
|
||
|
||
- QSyntaxHighlighter:
|
||
Added function rehighlight(). Improved internals to be more
|
||
efficient (less calls to highlightParagraph() necessary).
|
||
|
||
- QTable:
|
||
Fixed Tab/BackTab handling to always work. Fixed
|
||
setColumnLabels() and setRowLabels().
|
||
|
||
- QTableItem (and subclasses):
|
||
Now supports global struts. (See QApplication::globalStrut().)
|
||
|
||
- QTDSDriver:
|
||
Added support for binary datatypes.
|
||
|
||
- QTextCodec:
|
||
Added QTextCodec::codecForCStrings and QTextCodec::codecForTr.
|
||
|
||
- QTextEdit:
|
||
Fixed a painting error which resulted in areas of the textedit
|
||
not being erased correctly. Make sure repainting is done after
|
||
changing the underline-links setting. Renamed 'allowTabs'
|
||
property to 'tabChangesFocus' (inverted value). Added a new
|
||
property 'autoFormatting'. When exporting HTML also quote
|
||
quotes. Fixed a background erasing bug which messed up the
|
||
view.
|
||
|
||
- QUrl:
|
||
Recognize Windows drive letters not only in the form of "c:/"
|
||
but also in the form "c:" (without the '/').
|
||
|
||
- QWidget:
|
||
Fixed some visibility issues.
|
||
|
||
****************************************************************************
|
||
* Qt Designer *
|
||
****************************************************************************
|
||
|
||
- Now displays the classname of "gray box" custom widgets in the gray
|
||
box on the form.
|
||
|
||
- Accept tildes (~) in the project settings.
|
||
|
||
- A new command line tool conv2ui (in qt/tools/designer/tools) has
|
||
been added, to convert dialog description files from different file
|
||
formats to .ui files without the need to invoke Qt Designer. This
|
||
tool uses the same plugins as Qt Designer for loading other dialog
|
||
description files.
|
||
|
||
- An import filter for .kdevdlg files has been added.
|
||
|
||
- Actions in the action editor are now sortable.
|
||
|
||
- Improved usability of more dialogs (in-place renaming, drag'n'drop,
|
||
etc.)
|
||
|
||
- Preserve creation order of forward declarations, variables, etc.
|
||
|
||
- Save comments for actions.
|
||
|
||
- uic: Fixed generating code for QStringList properties.
|
||
|
||
****************************************************************************
|
||
* Qt Assistant *
|
||
****************************************************************************
|
||
|
||
- Fixed some accelerator conflicts.
|
||
|
||
****************************************************************************
|
||
* Qt Linguist *
|
||
****************************************************************************
|
||
|
||
- Handle trailing backslash in strings correctly in lupdate.
|
||
|
||
******************************** END ***************************************
|