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 .ui of a form, a .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 .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 + .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 )