Qt 3.0 Beta2 is not binary compatible with Beta1, this means that any+ −
programs linked with Beta1 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+ −
========================================+ −
+ −
Wacom Tablet Support+ −
--------------------+ −
+ −
Support for Wacom brand tablets has been introduced on Irix and+ −
Windows. These devices generate a QTabletEvent that can be handled by+ −
QWidget::tabletEvent(). The QTabletEvent holds information about+ −
pressure, X and Y tilt, and which device is being used (e.g. stylus or+ −
eraser). Note: at present, there are known issues with the Windows+ −
version.+ −
+ −
Documentation+ −
-------------+ −
+ −
Overall enhancements including fixed typos and the addition of several+ −
images and code examples.+ −
+ −
QStyle (and derived classes)+ −
----------------------------+ −
+ −
The style API has been completely rewritten in Qt 3.0. The main reason+ −
for doing this was because it was getting inconsistent, hard to+ −
maintain and extend. Most of the old 2.x functions have been replaced+ −
by a small set of more general functions. The new API is:+ −
+ −
- much more consistent+ −
- less work have to be done to create custom styles+ −
- easier to extend and maintain binary compatibility+ −
+ −
The old API relied upon a host of virtual functions that were+ −
re-implemented in the different styles. These functions were used to+ −
draw parts of, or entire widgets. The new API uses a small set of more+ −
general functions. Enumerated values are passed as parameters to these+ −
functions to specify which parts of a control or widget is to be drawn+ −
(e.g drawPrimitive( PE_ArrowUp, ...)).+ −
+ −
To create custom styles with the new API, simply subclass from the+ −
preferred base style and re-implement the function that draws the part+ −
of the widget you want to change. If you for example want to change+ −
the look of the arrows that are used in QWindowsStyle, subclass from+ −
it and re-implement the drawPrimitive() function. Your drawPrimitive()+ −
function may look something like this:+ −
+ −
void QMyStyle::drawPrimitive( PrimitiveElement pe, ... )+ −
{+ −
switch( pe ) {+ −
case PE_ArrowUp:+ −
// draw up arrow+ −
break;+ −
case PE_ArrowDown:+ −
// draw down arrow+ −
break;+ −
default:+ −
// let the base class handle the rest of the drawing+ −
QWindowsStyle::drawPrimitive( ... );+ −
break;+ −
}+ −
}+ −
+ −
For more information about the new style API, please read the QStyle+ −
documentation.+ −
+ −
+ −
Qt Designer+ −
========================================+ −
+ −
- Improved indentation algorithm for the code editor.+ −
- Allow multiple code editors to be open. This makes copy and paste+ −
much easier.+ −
+ −
+ −
Qt Functions+ −
========================================+ −
+ −
QCanvas+ −
-------+ −
+ −
- QCanvas does not react on windowActivationChange() anymore.+ −
- 64 bit cleanup.+ −
+ −
QChar+ −
-----+ −
+ −
- The Unicode character is stored host ordered now. Main advantage is+ −
that you can directly cast a QChar array to an array of unsigned shorts.+ −
+ −
QCom+ −
----+ −
+ −
- Introduced QS_OK, QS_FALSE, QE_NOINTERFACE, QE_INVALIDARG and+ −
QE_NOIMPL as possible QRESULT return values.+ −
+ −
QDate, QTime and QDateTime+ −
--------------------------+ −
+ −
- New function for outputting free form strings and new DateFormat+ −
enum Qt::LocalDate.+ −
+ −
New functions:+ −
QString toString( const QString& format );+ −
+ −
QDir+ −
----+ −
+ −
- entryInfoList() returns 0 for non-existing directories on Windows+ −
as the documentation claims and the Unix version already does.+ −
- On Windows, QDir tries a more failsafe way to determine the home+ −
directory.+ −
+ −
QDom+ −
----+ −
+ −
- QDomNode::hasChildNodes() now works as documented.+ −
- QDomDocument::toString() includes now namespaces in its output.+ −
- QDomDocument::QDomDocument() constructor now allows adding children+ −
to the document.+ −
+ −
QFileDialog+ −
-----------+ −
+ −
- Various fixes in file type filter and handling of file names and+ −
directories.+ −
+ −
QEvent+ −
------+ −
+ −
- New event type DeferredDelete. See QObject changes below.+ −
+ −
QGL+ −
---+ −
+ −
- Fix for Irix in respect of installing colormaps.+ −
- Swapped arguments of QGLColormap::setEntries() in order to be able+ −
to use a meaningful default argument.+ −
+ −
New class:+ −
QGLColormap - class for manipulating colormaps in GL index mode.+ −
+ −
QGridView+ −
---------+ −
+ −
A new class that provides an abstract base for fixed-size grids.+ −
+ −
QIconSet+ −
--------+ −
+ −
New function:+ −
void clearGenerated();+ −
+ −
QImage+ −
------+ −
+ −
- Handlers for image formats can be dynamically loaded as a plug-in by+ −
using the QImageFormatInterface.+ −
+ −
QLabel+ −
------+ −
+ −
- setIndent() behaves like documented.+ −
+ −
QLineEdit+ −
---------+ −
+ −
New function:+ −
int characterAt( int xpos, QChar *chr ) const;+ −
+ −
QLibrary+ −
--------+ −
+ −
Enabled plug-in loading with static Qt library (Windows).+ −
+ −
QMovie+ −
------+ −
+ −
- Does pixmap caching now. Reduces load e.g. on the X Server in the+ −
case of animated gifs.+ −
+ −
QObject+ −
-------+ −
+ −
- Added a deferredDelete() function that will cause the object to+ −
delete itself once the event loop is entered again.+ −
+ −
- A second type of destroyed signal - one that passes a pointer to+ −
the destroyed object as a parameter - will be emitted in QObject's+ −
destructor.+ −
+ −
New signal:+ −
void destroyed( QObject* obj );+ −
+ −
New slot:+ −
void deferredDelete();+ −
+ −
QPainter+ −
--------+ −
+ −
- So far clipping had always been done in the device coordinate+ −
system. The newly introduced ClipMode allows clipping regions to be+ −
set via setClipRect() and setClipRegion() in painter coordinates.+ −
+ −
New enum:+ −
enum ClipMode { ClipDevice, ClipPainter };+ −
+ −
Extended functions:+ −
QRegion clipRegion( ClipMode = ClipDevice ) const;+ −
void setClipRect( const QRect &, ClipMode = ClipDevice )+ −
void setClipRect( int x, int y, int w, int h, ClipMode = ClipDevice );+ −
void setClipRegion( const QRegion &, ClipMode = ClipDevice );+ −
+ −
QPrintDialog+ −
------------+ −
+ −
- Allow overriding the default print dialog. This way it's possible+ −
to better cope with the variety of existing print systems (API not+ −
finalized, yet).+ −
- The dialog reads current QPrinter on every invocation now.+ −
+ −
New functions:+ −
static void setGlobalPrintDialog( QPrintDialog * );+ −
virtual bool setupPrinters ( QListView *printers );+ −
+ −
QPrinter+ −
--------+ −
+ −
- X11 version only: Introduced Qt settings switch 'embedFonts' that+ −
allows disabling font embedding to reduce size of PostScript output.+ −
+ −
QProcess+ −
--------+ −
+ −
- Added function to retrieve the pid (Unix) or PROCESS_INFORMATION+ −
(Windows) from a running process.+ −
- Extra parameter for environment settings in start() and launch()+ −
functions.+ −
+ −
New/extended functions:+ −
PID processIdentifier();+ −
virtual bool start( QStringList *env=0 );+ −
virtual bool launch( const QString& buf, QStringList *env=0 );+ −
virtual bool launch( const QByteArray& buf, QStringList *env=0 );+ −
+ −
New signal:+ −
void launchFinished();+ −
+ −
QServerSocket+ −
-------------+ −
+ −
- Set the SO_REUSEADDR option so that the server can be restarted.+ −
+ −
QSocket+ −
-------+ −
+ −
- Make deletion of QSocket instances safe if it is in response to a+ −
signal emitted by the object itself.+ −
+ −
SocketDevice+ −
------------+ −
+ −
- Optional boolean parameter to be able to distinguish between+ −
timeout and connection closed by peer when waitForMore() returns.+ −
+ −
Extended functions:+ −
int waitForMore( int msecs, bool *timeout=0 ) const;+ −
+ −
QStyleSheet+ −
-----------+ −
+ −
- Added helper function that escapes HTML meta-characters.+ −
+ −
New function:+ −
QString escape( const QString& plain);+ −
+ −
QSql+ −
----+ −
+ −
- The source of the SQL driver plug-ins have been moved to+ −
$QTDIR/plugins/src/sqldrivers/.+ −
- The postgres driver checks the version number of the server. So there is+ −
no need for different drivers: QPSQL6 no longer exists -- use QPSQL7+ −
instead.+ −
- Postgres driver supports now 3 PostgreSQL back ends: 6.x, 7.0.x and 7.1.x+ −
- Better handling of errors coming from the database.+ −
- SQL driver for Microsoft SQL Server and Sybase Adaptive Server (TDS).+ −
- Added caching for forward-only cursors.+ −
- Avoid crashes on the unloading of SQL plugins that occurred on some+ −
platforms.+ −
- QSqlResults can be forward only to improve performance+ −
(QSqlResult::setForwardOnly()).+ −
- QSqlDatabase passes the port number to the SQL driver.+ −
+ −
QTable+ −
------+ −
+ −
- No longer calls processEvents() in columnWidthChanged() and+ −
rowHeightChanged() in order to avoid any side effects.+ −
- Ensure that mousePressEvent doesn't emit contextMenuRequested(),+ −
unless it is called from the contextMenu event handler.+ −
- For more useful subclassing the new functions listed below have+ −
been added.+ −
+ −
New functions:+ −
bool isEditing() const;+ −
EditMode editMode() const;+ −
int currEditRow() const;+ −
int currEditCol() const;+ −
+ −
QTextCodec+ −
----------+ −
+ −
- Fixes for characters in the 0x80..0xff range.+ −
+ −
QTextEdit+ −
---------+ −
+ −
- The rich text engine has seen many internal improvements and+ −
additions to the QTextEdit class.+ −
+ −
New functions:+ −
virtual void scrollToBottom();+ −
virtual void removeSelection( int selNum = 0 );+ −
virtual bool getParagraphFormat(...);+ −
virtual void insertParagraph( const QString &text, int para );+ −
virtual void removeParagraph( int para );+ −
virtual void insertAt( const QString &text, int para, int index );+ −
QRect paragraphRect( int para ) const;+ −
int paragraphAt( const QPoint &pos ) const;+ −
int charAt( const QPoint &pos, int *para ) const;+ −
+ −
QUrlOperator+ −
------------+ −
+ −
- More precise error messages.+ −
+ −
QWidget+ −
-------+ −
+ −
- Added a read-only property containing the widget's background brush.+ −
+ −
New function:+ −
virtual const QBrush& backgroundBrush() const;+ −
+ −
QWMatrix+ −
--------+ −
+ −
- New functions for mapping of geometric elements via matrix+ −
multiplication semantics.+ −
+ −
New functions:+ −
QRect mapRect( const QRect & );+ −
QPoint operator * (const QPoint & ) const;+ −
QRegion operator * (const QRect & ) const;+ −
QRegion operator * (const QRegion & ) const;+ −
QPointArray operator * ( const QPointArray &a ) const;+ −