Qt 3.0 Beta3 is not binary compatible with Beta2, this means that any
programs linked with Beta2 must be recompiled.
Below you'll find a description of general changes in the Qt Library
and Qt Designer followed by a detailed list of changes in the
programming API.
The Qt Library
========================================
Documentation
-------------
Overall enhancements include fixed typos, corrected grammar and
spelling, and the addition of several images and code examples. Most
classes now have useful detailed descriptions. Documentation accuracy
and usability has been generally improved.
Styles
------
In Qt 3.0.0 Beta2, only the Windows and Motif styles were implemented with
the new style API. Now the missing styles (MotifPlus, Platinum, SGI and
CDE) are included.
MNG
---
Updated the libmng that is shipped with Qt to version 1.0.2.
Wacom Tablet Support
--------------------
Fixes for Windows to solve the problem of creating a context for every
widget and the problem of opening the dialog and losing the ability to use
the tablet afterwards.
Qt Designer
========================================
- Added the ability to sort the property editor either by category
(default and old behaviour) or alphabetically.
- Added the option "-nofwd" to uic which supresses the generation of
forward declarations for custom classes in the generated output.
- The way how custom slots and editing these slots directly in the Qt
Designer is handled has been changed. Originally the code for these
slots was saved into the .ui XML file together with the user
interface description and the uic did put this code into the
generated source files.
Now, if code of custom slots is edited directly in the Qt Designer,
additionally to the <filename>.ui of a form, a <filename>.ui.h file
is created. The code is written into this source file now instead
of the .ui file.
This way the code of custom slots can be also easily edited outside
the Qt Designer without subclassing, and it is possible to edit it
both, in the Qt Designer and outside the Qt Designer without
conflicts, as this is a plain text C++ file.
Uic now automatically includes this source file into the generated
sources (if it exists) and, in this case, does not create empty
stubs for the custom slots in the generated sources anymore. So
this code file has not to be added to the project Makefile. If the
source file does not exist, uic falls back to the old behavior and
creates the empty stubs in the generated source.
If a user does not want to subclass to implement the custom slots,
but also does not want to edit the code of the custom slots in the
Qt Designer, it is possible to always create the <formname>.ui.h
for a form (even if it was not edited in the Qt Designer) and edit
that file in a seperate editor. This feature can be configured in
the project settings dialog.
This way, the old approach of subclassing keeps working (and all
old .ui files keep working without any change). Also, for users of
the previous Qt 3.0 Beta versions, Qt Designer can still read the
.ui files which contain code. So also .ui files created with Qt 3.0
Beta versions of the Qt Designer keep working without any change.
Details about the possible concepts which can be used to add code
to a form created by the Qt Designer (subclassing and uic +
<filename>.ui.h) and related information about project management
can be found in the chapter about new features in Qt Designer 3.0
in the Qt Designer manual.
Qt Functions
========================================
QApplication
------------
- flush() no longer calls sendPostedEvents(), as this might be unsafe
under certain circumstances.
QDataTable
----------
- Now uses the new row selection mode of QTable.
QDomDocument
------------
- Fixed the toString() function to work properly with namespaces.
- In Qt 3.0.0 Beta2, there was a workaround for Microsoft's XML parser,
so that the toString() function did not output a doctype that consists
only of the name. This workaround is semantically wrong; it was
reverted.
QDateEdit
---------
- Fixed wrong default size policy and missing size hint.
- Improved focus and tab handling.
QEffects
--------
- Tooltips and popup menus scroll and fade again
QTable
------
- Fixed right mouse button handling.
- Implemented row selection modes. This implied adding the new enum values
SingleRow and MultiRow to the enum SelectionMode.
- Doubleclick clears selections completely now.
- Allow different focus styles, namely FollowStyle (draw it as the style
tells you) and SpreadSheet (draw it as it is done in common spreadsheet
programs).
New functions:
virtual void setFocusStyle( FocusStyle fs );
FocusStyle focusStyle() const;
virtual QRect cellRect( int row, int col ) const;
QTimeEdit
---------
- Fixed wrong default size policy and missing size hint.
- Improved focus and tab handling.
QTextEdit
---------
- QTextCursor is an internal class, so the signal
cursorPositionChanged(QTextCursor*) is only of limited use. Added a
more useful signal in addition.
- Overrides accelerators for all shortcuts used to edit text.
New signal:
void cursorPositionChanged( int para, int pos );
QLineEdit
---------
- Overrides accelerators for all shortcuts used to edit text.
QLibrary
--------
- Static overload for resolve as a convenience function.
New function:
static void *resolve( const QString &filename, const char * );
QListView
---------
- A bug that was introduced in Qt 3.0.0 beta 2 made listviews with
lots of items very slow. This problem has been fixed.
QProcess
--------
- exitStatus() did not work for negative values on Unix. This is fixed
now.
- Fixed problems on Unixware.
QRichtext
---------
- Fixed searching backwards.
- Fixed some BIDI text-rendering problems.
QSound
------
- Simplified the API to allow easier extension.
New functions:
bool isAvailable();
int loops() const;
int loopsRemaining() const;
void setLoops(int);
QString fileName() const;
bool isFinished() const;
New slot:
void stop();
Removed function:
bool available();
QSpinBox
--------
- Spin box arrows were not updated correctly when the widget was
disabled/enabled. This problem is fixed now.
- Improved handling of the case when a spinbox accepts a value: now it
also accepts it if the spinbox loses focus or is hidden.
QSqlCursor
----------
- Add functions to set the generated flag. This is used to avoid the
generation of malformed SQL statements.
New functions:
void setGenerated( const QString& name, bool generated );
void setGenerated( int i, bool generated );
QSqlDriver
----------
- Add new function hasFeature( QSqlDriver::DriverFeature ) const which
allows you to query whether the driver supports features like SQL
transactions or Binary Large Object fields. The functions
hasQuerySizeSupport(), canEditBinaryFields() and hasTransactionSupport()
are therefore obsolete and have been removed.
New function:
bool hasFeature( QSqlDriver::DriverFeature ) const;
Removed functions:
bool hasQuerySizeSupport() const;
bool canEditBinaryFields() const;
bool hasTransactionSupport() const;
QSqlField
---------
- The bool argument of setNull() was removed since it does not make sense
to set a field to non null.
QTabWidget
----------
- Use the functions below to add tool tips to the individual tabs in a
QTabWidget.
New functions:
void removeTabToolTip( QWidget * w );
void setTabToolTip( QWidget * w, const QString & tip );
QString tabToolTip( QWidget * w ) const;
QTabBar
-------
- Use the functions below to add tool tips to the individual tabs in a
QTabBar.
New functions:
void removeToolTip( int id );
void setToolTip( int id, const QString & tip );
QString toolTip( int id ) const;
QTextStream
-----------
- The global functions setw(), setfill() and setprecison() were deleted
since they conflict with the std classes. If you need the functionality,
use qSetW(), qSetFill() and qSetPrecision() instead.
Removed functions:
QTSManip setw( int w )
QTSManip setfill( int f )
QTSManip setprecision( int p )