Qt Toolkit - Key Features in Qt 2.2

| Classes - Annotated - Tree - Functions - Home - Structure

# Key Features in Qt 2.2

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 Qt GUI Designer for a feature overview.

Qt 2.2 integrates now fully on MS-Windows 2000. This includes fade and scroll effects for popup windows and titelbar gradients for MDI document windows in the MDI module. As with all Qt features, we provide the same visual effects on Unix/X11. Try adding this to your `~/.Xresources` or `~/.Xdefaults` file:

       ! Qt GUI effects
       *guieffects: fademenu animatecombo animatetooltip
       designer.guieffects: animatemenu fadetooltip

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, which 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 multithreaded applications. The classes involved are QThread to start threads, QMutex and QSemaphore to serialize them, QWaitCondition to wait/wake threads on conditions. See the online Threads documentation for more details.

In addition to improving the fundamental Qt functionality, we've made changes 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 optinally 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 Level 1.
- Workspace: a workspace window that can contain decorated document windows for Multi Document Interfaces (MDI).