<tdalign="right"valign="center"><imgsrc="logo32.png"align="right"width="64"height="32"border="0"></td></tr></table><h1align=center>Key Features in TQt 3.0</h1>
<p> TQt 3.0 adds a lot of new features and improvements over the TQt 2.x
series. Some internals have undergone major redesign and new classes
and methods have been added.
<p> We have tried to keep the API of TQt 3.0 as compatible as possible with
the TQt 2.x series. For most applications only minor changes will be
needed to compile and run them successfully using TQt 3.0.
<p> One of the major new features that has been added in the 3.0 release
is a module allowing you to easily work with databases. The API is
platform independent and database neutral. This module is seamlessly
integrated into TQt Designer, greatly simplifying the process of
building database applications and using data aware widgets.
<p>
Other major new features include a plugin architecture. You can use
your own and third party plugins your own applications.
The Unicode support of TQt 2.x has been greatly enhanced, it now
includes full support for scripts written from right to left (e.g.
Arabic and Hebrew) and also provides improved support for Asian
languages.
<p> Many new classes have been added to the TQt Library. Amongst them are
classes that provide a docking architecture
(<ahref="qdockarea.html">TQDockArea</a>/<ahref="qdockwindow.html">TQDockWindow</a>), a powerful rich text editor
(<ahref="qtextedit.html">TQTextEdit</a>), a class to store and access application settings
(<ahref="qsettings.html">TQSettings</a>) and a class to create and communicate with processes
(<ahref="qprocess.html">TQProcess</a>).
<p> Apart from the changes in the library itself a lot has been done to
make the development of TQt applications with TQt 3.0 even easier than
before. Two new applications have been added: TQt Linguist is a tool to
help you translate your application into different languages; TQt
Assistant is an easy to use help browser for the TQt documentation that
supports bookmarks and can search by keyword.
<p> Another change concerns the TQt build system, which has been reworked
to make it a lot easier to port TQt to new platforms. You can use this
platform independent build system for your own applications.
<p><h2> The TQt Library
</h2>
<aname="1"></a><p> A large number of new features has been added to TQt 3.0. The following
list gives an overview of the most important new and changed aspects
of the TQt library. A full list of every new method follows the
overview.
<p><h3> Database support
</h3>
<aname="1-1"></a><p> One of the major new features in TQt 3.0 is the <ahref="sql.html">SQL
module</a> that provides multiplatform access to SQL databases,
making database application programming with TQt seamless and portable.
The API, built with standard SQL, is database-neutral and software
development is independent of the underlying database.
<p> A collection of tightly focused C++ classes are provided to give the
programmer direct access to SQL databases. Developers can send raw SQL
to the database server or have the TQt SQL classes generate SQL queries
automatically. Drivers for Oracle, PostgreSQL, MySQL and ODBC are
available and writing new drivers is straightforward.
<p> Tying the results of SQL queries to GUI components is fully supported
by TQt's SQL widgets. These classes include a tabular data widget
(for spreadsheet-like data presentation with in-place editing), a
form-based data browser (which provides data navigation and edit
functions) and a form-based data viewer (which provides read-only
forms). This framework can be extended by using custom field editors,
allowing for example, a data table to use custom widgets for in-place
editing. The SQL module fully supports TQt's signal/slots mechanism,
making it easy for developers to include their own data validation and
auditing code.
<p> TQt Designer fully supports TQt's SQL module. All SQL widgets can be
laid out within TQt Designer, and relationships can be established
between controls visually. Many interactions can be defined purely in
terms of TQt's signals/slots mechanism directly in TQt Designer.
<p>
<h3> Plugins
</h3>
<aname="1-2"></a><p> The <ahref="qlibrary.html">TQLibrary</a> class provides a platform independent wrapper for runtime
loading of shared libraries. TQPluginManager makes it trivial to implement
plugin support in applications. The TQt library is able to load
additional styles, database drivers and text codecs from plugins.
<p> TQt Designer supports custom widgets in plugins, and will use the
widgets both when designing and previewing forms.
<p> See the <ahref="plugins-howto.html">plugins documentation</a>.
<p><h3> Rich text engine and editor
</h3>
<aname="1-3"></a><p> The rich text engine originally introduced in TQt 2.0 has been further
optimized and extended to support editing. It allows editing formatted
text with different fonts, colors, paragraph styles, tables and
images. The editor supports different word wrap modes, command-based
undo/redo, multiple selections, drag and drop, and many other
features. The new <ahref="qtextedit.html">TQTextEdit</a> engine is highly optimized for proccesing
and displaying large documents tquickly and efficiently.
<p><h3> Unicode
</h3>
<aname="1-4"></a><p> Apart from the rich text engine, another new feature of TQt 3.0 that
relates to text handling is the greatly improved Unicode support. TQt
3.0 includes an implementation of the bidirectional algorithm (BiDi)
as defined in the Unicode standard and a shaping engine for Arabic,
which gives full native language support to Arabic and Hebrew speaking
people. At the same time the support for Asian languages has been
greatly enhanced.
<p> The support is almost transparent for the developer using TQt to
develop their applications. This means that developers who developed
applications using TQt 2.x will automatically gain the full support for
these languages when switching to TQt 3.0. Developers can rely on their
application to work for people using writing systems different from
Latin1, without having to worry about the complexities involved with
these scripts, as TQt takes care of this automatically.
<p><h3> Docked and Floating Windows
</h3>
<aname="1-5"></a><p> TQt 3.0 introduces the concept of Dock Windows and Dock Areas. Dock
windows are widgets, that can be attached to, and detached from, dock
areas. The commonest kind of dock window is a tool bar. Any number of
dock windows may be placed in a dock area. A main window can have dock
areas, for example, <ahref="qmainwindow.html">TQMainWindow</a> provides four dock areas (top, left,
bottom, right) by default. The user can freely move dock windows and
place them at a convenient place in a dock area, or drag them out of
the application and have them float freely as top level windows in
their own right. Dock windows can also be minimized or hidden.
<p> For developers, dock windows behave just like ordinary widgets. TQToolbar
for example is now a specialized subclass of a dock window. The API
of TQMainWindow and <ahref="qtoolbar.html">TQToolBar</a> is source compatible with TQt 2.x, so
existing code which uses these classes will continue to work.
<p><h3> Regular Expressions
</h3>
<aname="1-6"></a><p> TQt has always provided <ahref="qregexp.html#regular-expression">regular expression</a> support, but that support