224 lines
8.7 KiB
Plaintext
224 lines
8.7 KiB
Plaintext
|
|
||
|
Qt 2.2 introduces new features as well as many improvements over the
|
||
|
2.1.x series. This file will only give an overview of the main changes
|
||
|
since version 2.1. 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.2 series is binary compatible with the 2.1.x and
|
||
|
2.0.x series - applications compiled for 2.0 or 2.1 will continue to
|
||
|
run with 2.2.
|
||
|
|
||
|
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, NT and 2000.
|
||
|
|
||
|
****************************************************************************
|
||
|
* Overview *
|
||
|
****************************************************************************
|
||
|
|
||
|
The greatest new feature in the 2.2 release is the Qt Designer, a
|
||
|
visual GUI design tool. It makes it possible to cut down on
|
||
|
development time even further through WYSIWYG dialog design. The
|
||
|
designer makes use of improved runtime flexibility and a revised
|
||
|
property system. Please see $QTDIR/doc/html/designer.html for a
|
||
|
feature overview.
|
||
|
|
||
|
Qt 2.2 integrates now fully on MS-Windows 2000. This includes fade
|
||
|
and scroll effects for popup windows and title bar gradients for MDI
|
||
|
document windows in the MDI module. As with all Qt features, we
|
||
|
provide the same visual effects on Unix/X11.
|
||
|
|
||
|
Two new classes QAction and QActionGroup make it much easier to
|
||
|
create sophisticated main windows for today's applications. A QAction
|
||
|
abstracts a user interface action that can appear both in menus and
|
||
|
tool bars. An action group makes it easier to deal with groups of
|
||
|
actions. It allows to add, remove or activate its children with a
|
||
|
single call and provides "one of many" semantics for toggle
|
||
|
actions. Changing an action's properties, for example using
|
||
|
setEnabled(),setOn() or setText(), immediately shows up in all
|
||
|
representations.
|
||
|
|
||
|
Few people consider the original OSF Motif style the most elegant or
|
||
|
flashy GUI style. Therefore several attempts have been made to come up
|
||
|
with a slightly improved Motif-ish look and feel. One of them is the
|
||
|
thinner CDE style, that was supported by Qt since version 2.0. In the
|
||
|
2.2 release, we now added support for SGI's very own Motif version on
|
||
|
IRIX workstations. With its more elegant bevelling of 3D elements and
|
||
|
mouse-under highlight effects, it is quite appealing. For Linux users,
|
||
|
we added a Motif plus style, that resembles the bevelling used by the
|
||
|
GIMP toolkit (GTK+). Optionally, this style also does hovering
|
||
|
highlight on buttons.
|
||
|
|
||
|
Last but not least we added support for multi-threaded
|
||
|
applications. The classes involved are QThread to start threads,
|
||
|
QMutex to serialize them and QCondition to signal the occurrence of
|
||
|
events between threads ("condition variables").
|
||
|
|
||
|
Another major change was done regarding distribution. In order to
|
||
|
address the steady growth of functionality in the Qt library, we
|
||
|
split the source code into distinct modules that can be compiled
|
||
|
in (or left out) separately. This also makes it possible for us to
|
||
|
keep the cost of entry into the commercial Qt world as low as possible.
|
||
|
|
||
|
The modules available in Qt 2.2 are:
|
||
|
|
||
|
- Tools: platform-independent Non-GUI API for I/O, encodings, containers,
|
||
|
strings, time & date, and regular expressions.
|
||
|
|
||
|
- Kernel: platform-independent GUI API, a complete window-system API.
|
||
|
|
||
|
- Widgets: portable GUI controls.
|
||
|
|
||
|
- Dialogs: ready-made common dialogs for selection of colors, files,
|
||
|
printers, fonts, and basic types, plus a wizard framework, message
|
||
|
boxes and progress indicator.
|
||
|
|
||
|
- OpenGL 3D Graphics: integration of OpenGL with Qt, making it very
|
||
|
easy to use OpenGL rendering in a Qt application.
|
||
|
|
||
|
- Network: advanced socket and server-socket handling plus
|
||
|
asynchronous DNS lookup.
|
||
|
|
||
|
- Canvas: a highly optimized 2D graphic area.
|
||
|
|
||
|
- Table: a flexible and editable table widget
|
||
|
|
||
|
- IconView: a powerful visualization widget similar to QListView and
|
||
|
QListBox. It contains optionally labelled pixmap items that the user
|
||
|
can select, drag around, rename, delete and more.
|
||
|
|
||
|
- XML: a well-formed XML parser with SAX interface plus an
|
||
|
implementation of the DOM Level1
|
||
|
|
||
|
- Workspace: a workspace window that can contain decorated document
|
||
|
windows for Multi Document Interfaces (MDI).
|
||
|
|
||
|
|
||
|
Network, Canvas, Table and XML are entirely new modules.
|
||
|
|
||
|
Below is a list of the major new features in existing classes as well
|
||
|
as short descriptions of all new classes.
|
||
|
|
||
|
|
||
|
****************************************************************************
|
||
|
* New major features in existing classes *
|
||
|
****************************************************************************
|
||
|
|
||
|
QApplication: - "global strut", an adjustable minimum size for interactable
|
||
|
control elements like the entries in a listbox, useful for
|
||
|
touch-screens. Popup window effects ( setEffectEnabled() )
|
||
|
and more threading support ( guiThreadTaken(), lock(),
|
||
|
unlock(), locked() ).
|
||
|
|
||
|
QCheckBox: - "tristate" is now a property.
|
||
|
|
||
|
QClipboard: - text() supports subtypes.
|
||
|
|
||
|
QComboBox: - "editable" is now a property that is changeable at runtime
|
||
|
|
||
|
QDialog: - support for extensible dialogs ("More...") with
|
||
|
setExtension() and setOrientation(). Optional size grip.
|
||
|
|
||
|
QFont: - new functions styleStrategy() and setStyleHint()
|
||
|
|
||
|
QIconSet: - new constructor that takes both a small and a large pixmap
|
||
|
|
||
|
QKeyEvent: - numeric keypad keys now set a Keypad flag
|
||
|
|
||
|
QLabel: - support for scaled pixmap contents, "pixmap" as property
|
||
|
|
||
|
QLayout: - improved flexibility with setEnabled(), access to the
|
||
|
laid out menu bar with menuBar().
|
||
|
|
||
|
QListView: - "showSortIndicator" as property. New function
|
||
|
QListViewItem::moveItem() to simplify drag and drop.
|
||
|
|
||
|
QMovie: - new functions pushSpace(), pushData(), frameImage()
|
||
|
|
||
|
QMultiLineEdit: - new functions pasteSubType() and copyAvailable()
|
||
|
|
||
|
QObject: - new function normalizeSignalSlot(), tr() now supports a comment.
|
||
|
|
||
|
QPicture: - streaming to and from QDataStream
|
||
|
|
||
|
QPopupMenu: - new signal aboutToHide()
|
||
|
|
||
|
QRegExp: - new functions setPattern() and find()
|
||
|
|
||
|
QRegion: - new function setRects()
|
||
|
|
||
|
QScrollView: - new property "staticBackground" to define a pixmap
|
||
|
background that does not scroll with the contents.
|
||
|
|
||
|
QStatusBar: - "sizeGripEnabled" as property
|
||
|
|
||
|
QStyle: - themable menu bars with drawMenuBarItem(). New functions
|
||
|
buttonMargin(), toolBarHandleExtent(), sliderThickness()
|
||
|
|
||
|
QTabWidget: - new functions currentPageIndex(), setCurrentPage(), new
|
||
|
signal currentChanged(). Similar extensions to QTabBar
|
||
|
and QTabDialog
|
||
|
|
||
|
QTranslator: - new algorithmen for faster lookup. No more risk of
|
||
|
"hash collisions" when many translators are loaded.
|
||
|
|
||
|
QVariant: - new subtype QSizePolicy. Necessary for QWidget's
|
||
|
new sizePolicy property.
|
||
|
|
||
|
QWidget: - new properties "sizePolicy", "ownPalette", "ownFont",
|
||
|
"ownCursor" and "hidden". The size policy is now adjustable
|
||
|
at runtime with setSizePolicy(). Added convenience slot
|
||
|
setDisabled(). Fast geometry mapping functions mapTo() and
|
||
|
mapFrom(). On X11, support for a new background mode
|
||
|
X11ParentRelative.
|
||
|
|
||
|
QWizard: - runtime changable titles with setTitle(), new signal
|
||
|
selected()
|
||
|
|
||
|
QWorkspace: - support for more widget flags like WType_Tool. Titlebar
|
||
|
blending effects on MS-Windows 98/2000.
|
||
|
|
||
|
|
||
|
****************************************************************************
|
||
|
* New classes *
|
||
|
****************************************************************************
|
||
|
|
||
|
QAction - Abstracts a user interface action that can appear both in
|
||
|
menus and tool bars. Changing an action's properties, for
|
||
|
example using setEnabled(),setOn() or setText(),
|
||
|
immediately shows up in all representations.
|
||
|
|
||
|
QActionGroup - Combines actions to a group. An action group makes it easier
|
||
|
to deal with groups of actions. It allows to add, remove or
|
||
|
activate its children with a single call and provides
|
||
|
"one of many" semantics for toggle actions.
|
||
|
|
||
|
QDial - A rounded rangecontrol (like a speedometer or
|
||
|
potentiometer). Both API- and UI-wise the dial is very
|
||
|
similar to a QSlider.
|
||
|
|
||
|
QDom - [XML Module] DOM Level 1 Tree
|
||
|
|
||
|
QMotifPlusStyle - This class implements a Motif-ish look and feel with more
|
||
|
sophisticated bevelling as used by the GIMP toolkit (GTK+)
|
||
|
for Unix/X11.
|
||
|
|
||
|
QMutex: - Provides access serialization between threads.
|
||
|
|
||
|
QSemaphore: - A robust integer semaphore. Another way of thread
|
||
|
serialization.
|
||
|
|
||
|
QThread - Baseclass for platform-independent threads.
|
||
|
|
||
|
QWaitCondition - Provides signalling of the occurrence of events between
|
||
|
threads ("condition variables")
|
||
|
|
||
|
QCanvas - [Canvas Module] a highly optimized 2D graphic area.
|
||
|
|
||
|
QTable - [Table Module] a flexible and editable table widget
|
||
|
|
||
|
QXML - [XML Module] XML parser with SAX interface
|
||
|
|