38be0d1383
This is the beginning of revision history for this module. If you want to look at revision history older than this, please refer to the Qt Git wiki for how to use Git history grafting. At the time of writing, this wiki is located here: http://qt.gitorious.org/qt/pages/GitIntroductionWithQt If you have already performed the grafting and you don't see any history beyond this commit, try running "git log" with the "--follow" argument. Branched from the monolithic repo, Qt master branch, at commit 896db169ea224deb96c59ce8af800d019de63f12
315 lines
13 KiB
Plaintext
315 lines
13 KiB
Plaintext
Qt 2.1 introduces new features as well as many improvements over the
|
|
2.0.x series. This file will only give an overview of the main changes
|
|
since version 2.0.2. A complete list would simply be too large to be
|
|
useful. For more detail see the online documentation which is included
|
|
in this distribution, and also available on
|
|
http://qt.nokia.com/doc/
|
|
|
|
The Qt version 2.1 series is binary compatible with the 2.0.x
|
|
series - applications compiled for 2.0 will continue to run with 2.1.
|
|
|
|
As with previous Qt releases, the API and functionality of Qt is
|
|
completely portable between Microsoft Windows and X11. It is also portable
|
|
between Windows 95, 98 and NT; unlike most toolkits, Qt lets a single
|
|
executable work on all three.
|
|
|
|
****************************************************************************
|
|
* Overview *
|
|
****************************************************************************
|
|
|
|
As usual, large sections of the documentation have been revised and
|
|
lots of new documentation has been added.
|
|
|
|
Much work went into existing classes, based on all the feedback we got
|
|
from our users. A warm thank you to you all at this point, we honestly
|
|
hope to satisfy most of your wishes with the new release.
|
|
|
|
Among the things that got a lot of polishing is the new geometry
|
|
management system that was introduced with the 2.x series. Some
|
|
classes, such as QBoxLayout, have been rewritten and many size hints
|
|
and size policies were optimized. As usual with newly introduced
|
|
systems, the occasional bug has been fixed as well. As a result,
|
|
layout in Qt-2.1 is not only nicer but also faster.
|
|
|
|
Big parts of the file dialog have been rewritten. It is now
|
|
synchronized in terms of features with the common Windows dialog,
|
|
including fancy drag'n'drop and in-place renaming. You can customize
|
|
both parts of the dialog, the front-end with info and preview widgets,
|
|
the back-end with different network protocols (see the QFileDialog and
|
|
QNetworkProtocol documentation for details).
|
|
|
|
Especially interesting for dynamic Qt applications is the newly
|
|
introduced property system. Many interesting things, from scripting up
|
|
to graphical user interface builders, become easier. The technology
|
|
requires a new macro Q_PROPERTY and a new revision of Qt's meta object
|
|
compiler (moc). See the Qt documentation for details.
|
|
|
|
Due to strong customer demand, we added a cross-platform way to easily
|
|
implement multi-document interfaces (known as 'MDI'). The widget is
|
|
called QWorkspace and makes this task trivial.
|
|
|
|
On X11, text dropping from Motif drag'n'drop applications has been
|
|
added, to make your Qt applications inter-operable with those Motif
|
|
applications that survived Y2K.
|
|
|
|
The rich text system, first introduced in Qt-2.0, has been
|
|
revised. Apart from great speed improvements, it now supports HTML
|
|
tables as well as floating images.
|
|
|
|
QMultiLineEdit, the text input field in Qt, got the missing word wrap
|
|
functionality. It's probably the last big extension we will add to
|
|
that widget. In Qt 3.0, it will be replaced by a fancier, faster and
|
|
more powerful QTextEdit widget that also deals with different colors
|
|
and fonts in a way similar to the existing QTextView.
|
|
|
|
Qt follows the respective GUI style guides even more closely. This
|
|
includes honoring desktop settings, and keyboard shortcuts such as
|
|
Ctrl-Z/Y for undo/redo in line edit and multi-line edit
|
|
controls. Dialog handling for both modal and non-modal dialogs has
|
|
been improved to follow the platform conventions precisely.
|
|
|
|
With QIconView, we added a powerful new visualization widget similar
|
|
to QListView and QListBox. It contains optinally labelled pixmap items
|
|
that the user can select, drag around, rename, delete and more.
|
|
|
|
Compared to the previous release, we have managed to reduce overall
|
|
memory consumption while improving execution speed and features.
|
|
|
|
Below is a list of the major new features in existing classes as well
|
|
as short descriptions of all new classes and the changes in some of
|
|
the extensions shipped with Qt.
|
|
|
|
|
|
****************************************************************************
|
|
* New major features in existing classes *
|
|
****************************************************************************
|
|
|
|
QApplication - new function wakeUpGuiThread() to simplify using threads
|
|
with Qt.
|
|
|
|
QArray - added sorting and binary search.
|
|
|
|
QColor - custom color support added. qRgb(r,g,b) helper function
|
|
now sets an opaque alpha value instead of a transparent
|
|
one.
|
|
|
|
QComboBox - support for text items with icons.
|
|
|
|
QFileDialog - many new features including fancy drag'n'drop
|
|
and in-place renaming.
|
|
Methods like setInfoPreviewWidget()and
|
|
setContentsPreviewWidget() make it easy to customize
|
|
the dialog extensively. With QUrlOperator and the
|
|
QNetworkProtocol abstraction, the dialog can operate
|
|
transparently by various different network protocols,
|
|
such as HTTP and FTP (see the Network Extension).
|
|
|
|
QFocusEvent - carries a reason() for the event. Possible reasons are
|
|
Mouse, Tab, ActiveWindow, ShortCut and other. The
|
|
addition makes line edit controls behave properly.
|
|
|
|
QHeader - added optional visual sort indicator. Revisited API that
|
|
operates on sections only (solves the 'logical' vs. 'actual'
|
|
index confusion). A reworked 'table' example shows how
|
|
to use QHeader in combination with a scrollview to create
|
|
a simple spreadsheet.
|
|
|
|
QListBox - many signals and functions added for convenience and
|
|
greater flexibility.
|
|
|
|
QListView - various selections modes similar to QListBox, many
|
|
new functions and signals added for convenience and
|
|
greater flexibility.
|
|
|
|
QMainWindow - implemented draggable and hidable toolbars. A menubar
|
|
can be made draggable by simply putting it in a toolbar.
|
|
|
|
QMetaObject - Parts of the API made public. The meta object allows
|
|
applications to access information about an object's
|
|
properties as well as its signals and slots.
|
|
|
|
QMultiLineEdit - added different word wrap modes: WidgetWidth,
|
|
FixedPixelWidth and FixedColumnWidth.
|
|
|
|
QObject - property access functions property() and setProperty().
|
|
|
|
QPen - added adjustable cap and join styles.
|
|
|
|
QPopupMenu - added support for tear-off menus, custom items
|
|
and widget items.
|
|
A new function setItemParameter() makes it possible
|
|
to distinguish between several menu items connected to
|
|
one single slot.
|
|
|
|
QPrinter - Now allows printing to the default printer without doing
|
|
setup() first.
|
|
|
|
QProgressDialog - auto-reset and auto-close modes.
|
|
|
|
QPushButton - added a menu button mode with setPopup().
|
|
|
|
QScrollView - support for auto-scrolling on drag move events (drag
|
|
auto scroll mode).
|
|
|
|
QSignal - optional additional integer parameter for the emitted
|
|
signal.
|
|
|
|
QSimpleRichText - added adjustSize() function that implements a clever
|
|
size hint. Vertical break support for printing. inText()
|
|
hit test.
|
|
|
|
QSpinBox - different button symbols, currently UpDownArrows and
|
|
PlusMinus.
|
|
|
|
QSplitter - supports three resize modes now, Stretch, KeepSize
|
|
and FollowSizeHint.
|
|
|
|
QString - new functions setUnicode(), setUnicodeCodes(), setLatin1(),
|
|
startsWith() and endsWith()
|
|
|
|
QStringList - new functions fromStrList(), split(), join() and grep().
|
|
|
|
QStyle - some extensions for menu button indicators, default
|
|
button indicators, variable scrollbar extends and toolbar
|
|
handles.
|
|
|
|
QStyleSheet - a couple of tags added to the default sheet, such as
|
|
U, NOBR, HEAD, DL, DT, DD and table support (TABLE, TR,
|
|
TD, TH). Many attributes added to existing tags.
|
|
|
|
QTextView - basic table support. Contents is selectable, selections
|
|
can be pasted/dragged into other widgets.
|
|
|
|
QToolBar - stretchable depending on the orientation (setHorizontalStretchable()
|
|
and setVerticalStretchable(). Added orientationChanged() signal.
|
|
|
|
QToolButton - added optional delayed menu with setPopup() and
|
|
setPopupDelay(). Auto-raise behaviour adjustable.
|
|
|
|
QWidget - new widget flag WStyle_ContextHelp that adds a
|
|
context-help button to the window titlebar. The
|
|
button triggers "What's This?"-help. The flag works
|
|
with MS-Windows and future versions of X11 desktops
|
|
such as KDE-2.0.
|
|
|
|
- New function showFullScreen().
|
|
|
|
- Enabling and disabling with setEnabled() propagates to
|
|
children.
|
|
|
|
- Changed isVisible(). It now returns whether a widget
|
|
is mapped up to the toplevel widget (the previous
|
|
implementation only returned isVisibleTo(parentWidget()).
|
|
|
|
- New property 'backgroundOrigin' that lets a widget draw
|
|
its background relatively to its parent widget's coordinate
|
|
system. This makes pseudo-transparency possible, without
|
|
the overhead of a real widget mask.
|
|
|
|
|
|
****************************************************************************
|
|
* New clases *
|
|
****************************************************************************
|
|
|
|
QCustomMenuItem - an abstract base class for custom menu items in
|
|
popup menus.
|
|
|
|
QFontDataBase - provides information about the available fonts. Not really
|
|
a new class (it was used internally for the QFontDialog),
|
|
but for the first time public API.
|
|
|
|
QGuardedPtr - a template class that provides guarded pointers to
|
|
QObjects.
|
|
|
|
QIconView - a sophisticated new widget similar to QListView and
|
|
QListBox. An iconview contains optinally labelled pixmap
|
|
items that the user can select, drag around, rename, delete
|
|
and more. The widget is highly optimized for speed and
|
|
large amounts of icons.
|
|
|
|
QInputDialog - a convenience dialog to get some simple input values from
|
|
the user.
|
|
|
|
QMetaProperty - stores meta data about properties. Part of the meta
|
|
object system.
|
|
|
|
QNetworkProtocol- base class for network protocols, provides
|
|
a common API for network protocols.
|
|
|
|
QUrl/
|
|
QUrlOperator - provides an easy way to work with URLs.
|
|
|
|
QVariant - a tagged union for the most common Qt data types.
|
|
|
|
QValueStack - a value-based stack container.
|
|
|
|
QWorkspace - provides a workspace that can contain decorated
|
|
windows as opposed to frameless child widgets.
|
|
QWorkspace makes it easy to implement a multi-document
|
|
interface (MDI).
|
|
|
|
QBig5Codec - provides support for the Big5 Chinese encoding.
|
|
|
|
|
|
****************************************************************************
|
|
* Changes which may affect runtime behaviour *
|
|
****************************************************************************
|
|
|
|
QDataStream / QPicture
|
|
To accomodate for improved functionality, the stream serialization format
|
|
of QString and QPen has changed in Qt 2.1. The format version
|
|
number has been increased to 3. Compatibility has been kept, so
|
|
applications built with this version of Qt are automatically able to read
|
|
QDataStream and QPicture data generated by earlier Qt 2.x versions. But if
|
|
your application needs to generate data that must be readable by
|
|
applications that are compiled with earlier versions of Qt, you must use
|
|
QDataStream::setVersion() (if the data contains QString or QPen objects).
|
|
See the documentation of this function for further discussion.
|
|
|
|
QPainter::drawPolygon()
|
|
An outline is no longer drawn in the brush color if NoPen is specified.
|
|
This matches the behaviour on Windows and ensures that the area
|
|
painted in this case is the same pixels defined by a QRegion made
|
|
from the polygon. To get the old behaviour, you can call
|
|
painter.setPen(painter.brush()) prior to painting, which will also
|
|
work on Windows.
|
|
|
|
QPushButton::sizeHint()
|
|
The size hint of auto-default push buttons has been slightly
|
|
increased in order to reserve space for a default button indicator
|
|
frame. This is necessary for a proper Motif or Platinum emulation. If
|
|
this change destroys your geometry management, a auto-default button
|
|
is probably not what you wanted anyway. Simply call
|
|
setAutoDefault(FALSE) on these push buttons to get the old behaviour.
|
|
|
|
QWidget
|
|
Font and palette propagation has changed totally (from "almost
|
|
brain-dead" to working). In practice, the only changes we've seen are
|
|
to the better.
|
|
|
|
QColor
|
|
qRgb(r,g,b) now sets a default opaque alpha value of 0xff instead of
|
|
a transparent 0x00 alpha value formerly. Use qRgb(r,g,b,a) if you do
|
|
need a transparent alpha value.
|
|
|
|
QPalette
|
|
It turned out that the old normal/active/disabled set of color groups
|
|
didn't work very well, except in the simplest hello-world examples,
|
|
that it couldn't be fixed without nasty hacks, and that during five
|
|
years nobody had discovered the bugs. So, we've dropped our broken
|
|
attempt at Tcl/Tk L&F compatibility, and added support for Windows
|
|
2000 and Macintosh L&F compatibility instead. The Macintosh and
|
|
Windows 2000 looks differentiate between the window with focus and
|
|
other windows. Qt calls the color groups QPalette::active() and
|
|
QPalette::inactive() respectively.
|
|
|
|
QGridLayout/QBoxLayout
|
|
setMargin() now also works on child layouts. As a result of this
|
|
change, the geometry() of a layout now includes margin(). This may
|
|
effect programs that use QLayout::geometry().
|
|
|
|
QToolButton
|
|
The now adjustable auto-raise behaviour defaults to TRUE only when
|
|
a button is used inside a QToolBar. That's usually what you want. If not,
|
|
call setAutoRaise(FALSE).
|