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 ***************************************
|