| 1 |
Qt 3.3 introduces many new features as well as many improvements over |
| 2 |
the 3.2.x series. For more details, see the online documentation which |
| 3 |
is included in this distribution. The documentation is also available |
| 4 |
at http://qt.nokia.com/doc/ |
| 5 |
|
| 6 |
The Qt version 3.3 series is binary compatible with the 3.2.x series. |
| 7 |
Applications compiled for 3.2 will continue to run with 3.3. |
| 8 |
|
| 9 |
**************************************************************************** |
| 10 |
* General * |
| 11 |
**************************************************************************** |
| 12 |
|
| 13 |
Qt library |
| 14 |
---------- |
| 15 |
|
| 16 |
Qt 3.3 is .NET enabled. This release shows how to use classes |
| 17 |
developed with Qt in a .NET environment. It includes an analysis of |
| 18 |
the different interoperability infrastructures provided by the .NET |
| 19 |
framework. An example demonstrates how to use both a manual approach |
| 20 |
with Microsoft's managed extensions to the C++ language, and also |
| 21 |
automated solutions based on COM and the ActiveQt framework to reuse |
| 22 |
native Qt classes and widgets in .NET projects. To learn more about Qt |
| 23 |
and .NET read the "Using Qt objects in Microsoft .NET" walkthrough |
| 24 |
found in the ActiveQt framework documentation. |
| 25 |
|
| 26 |
Qt 3.3 now supports IPv6 in addition to IPv4. New functions have been |
| 27 |
added for IPv6 support to QSocketDevice, QHostAddress and QDNns. |
| 28 |
|
| 29 |
Qt now includes a new tool class called QLocale. This class converts |
| 30 |
between numbers and their string representations in various languages. |
| 31 |
QLocale supports the concept of a default locale which allows a locale |
| 32 |
to be set globally for the entire application. |
| 33 |
|
| 34 |
Support for new 64bit platforms and compilers has been added for Qt |
| 35 |
3.3. Qt now supports Itanium on both Linux (Intel C++ compiler) and |
| 36 |
Windows (MSVC and Intel C++ Compiler). Qt 3.3 now also officially |
| 37 |
supports FreeBSD. |
| 38 |
|
| 39 |
Qt 3.3 also supports precompiled headers for Windows, Mac OS X and |
| 40 |
X11. To use precompiled headers when compiling your Qt application |
| 41 |
simply add PRECOMPILED_HEADER and then specify the header file to |
| 42 |
precompile in your .pro file. To learn more about precompiled headers |
| 43 |
see the "Using Precompiled Headers" chapter in the qmake User Guide. |
| 44 |
|
| 45 |
Two new database drivers have been added to the SQL module, InterBase |
| 46 |
and SQLite. This makes it possible to write database applications that |
| 47 |
do not require a database server. SQLite is provided in the Qt 3.3 |
| 48 |
distribution and can be enabled with either -qt-sql-sqlite or |
| 49 |
-plugin-sql-sqlite. The InterBase plugin also works with Firebird, the |
| 50 |
open source version of InterBase. |
| 51 |
|
| 52 |
QWidget has a new function setWindowState() which is used to make a |
| 53 |
widget maximized, minimized, etc. This allows individual settings for |
| 54 |
the minimized/maximized/fullscreen properties. |
| 55 |
|
| 56 |
Support for semi-transparent top-level widgets on Mac OS X and Windows |
| 57 |
2000/XP has also been added. |
| 58 |
|
| 59 |
A new example, qregexptester, has been added that makes it easy to |
| 60 |
test QRegExps on sample strings. |
| 61 |
|
| 62 |
Qt 3.3 includes in addition to this, numerous bug fixes and |
| 63 |
improvements. Special thanks goes to KDE for their reports and |
| 64 |
suggestions. |
| 65 |
|
| 66 |
|
| 67 |
Qt/Embedded |
| 68 |
----------- |
| 69 |
|
| 70 |
Added support for SNAP graphics drivers from SciTech Software. This |
| 71 |
gives access to accelerated drivers for more than 150 graphics |
| 72 |
chipsets. |
| 73 |
|
| 74 |
|
| 75 |
Qt/Mac |
| 76 |
------ |
| 77 |
|
| 78 |
QAccessible support has been introduced (implemented in terms of Apple's |
| 79 |
Universal Access API). |
| 80 |
|
| 81 |
Added support for Xcode project files in qmake. |
| 82 |
|
| 83 |
Added Tablet support for Mac OS X. |
| 84 |
|
| 85 |
Numerous visual improvements. |
| 86 |
|
| 87 |
|
| 88 |
Qt/X11 |
| 89 |
------ |
| 90 |
|
| 91 |
Added support for Xft2 client side fonts on X servers without the |
| 92 |
RENDER extension. |
| 93 |
|
| 94 |
Added a new configure option (-dlopen-opengl) which will remove the |
| 95 |
OpenGL and Xmu library dependencies in the Qt library. The functions |
| 96 |
used by Qt in those libraries are resolved manually using dlopen() |
| 97 |
when this option is used. |
| 98 |
|
| 99 |
Improved support for the Extended Window Manager Hints. |
| 100 |
|
| 101 |
|
| 102 |
Qt/Windows |
| 103 |
---------- |
| 104 |
|
| 105 |
Added support for Windows Server 2003 (Win64/Itanium). |
| 106 |
|
| 107 |
|
| 108 |
Qt Motif Extension |
| 109 |
------------------ |
| 110 |
|
| 111 |
Clipboard operations now work between Qt and Motif widgets in the same |
| 112 |
application. Click-to-focus works with Motif widgets that are children |
| 113 |
of a QMotifWidget. |
| 114 |
|
| 115 |
|
| 116 |
ActiveQt Extension |
| 117 |
------------------ |
| 118 |
|
| 119 |
Two new functions, QAxFactory::startServer() and |
| 120 |
QAxFactory::stopServer(), can be used to start and stop an |
| 121 |
out-of-process ActiveQt server at runtime. The new functions |
| 122 |
QAxFactory::serverDirPath() and QAxFactory::serverFilePath() return |
| 123 |
the location of the COM server binary. Server binaries no longer |
| 124 |
need to implement a main() entry point function. A default |
| 125 |
implementation is used for out-of-process servers. IClassFactory2 |
| 126 |
is supported for the development of licensed components, and |
| 127 |
QAxFactory supports the creation of non-visual COM objects. Class |
| 128 |
specific information can be provided directly in the C++ class |
| 129 |
declaration using the Q_CLASSINFO macro to control how objects and |
| 130 |
controls are registered and exposed. New helper classes and macros |
| 131 |
are avialable to make it even easier to expose object classes (see the |
| 132 |
QAxServer documentation for details). |
| 133 |
|
| 134 |
COM objects developed with ActiveQt are now supported in a wider range |
| 135 |
of clients, including Microsoft Office applications and .NET. Examples |
| 136 |
that demonstrate how to use the Qt objects from the examples in .NET |
| 137 |
languages like C# are included. QStringList is supported as a type, |
| 138 |
and QRect, QSize and QPoint are now supported datatypes for control |
| 139 |
properties and as reference parameters. Saving the controls to a |
| 140 |
storage or stream now includes the version number of the QDataStream |
| 141 |
used for the serialization (note that this might break existing |
| 142 |
storages). |
| 143 |
|
| 144 |
The QAxContainer library is now static even for shared configurations |
| 145 |
of Qt. This simplifies deployment and allows using both QAxServer and |
| 146 |
QAxContainer in one project, i.e. an OLE automatable application that |
| 147 |
uses COM objects itself. The semantics of QAxBase::setControl() have |
| 148 |
been extended to allow creating of COM objects on remote machines via |
| 149 |
DCOM, to create controls requiring a license key and to connect to |
| 150 |
already running objects. The implementation of QAxBase::dynamicCall() |
| 151 |
has been improved to support passing of parameter values directly in |
| 152 |
the function string. Three new classes, QAxScript, QAxScriptManager |
| 153 |
and QAxScriptEngine, can be used to script COM objects from within Qt |
| 154 |
applications using Windows Script Host. |
| 155 |
|
| 156 |
SAFEARRAY(BSTR) parameters are supported as QStringList. Calling COM |
| 157 |
object methods with out-parameters of type short, char and float is |
| 158 |
now supported (the parameters are of type int& and double& in the Qt |
| 159 |
wrapper), and QVariants used for out-parameters don't have to be |
| 160 |
initialized to the expected type. Calling QByteArray functions in |
| 161 |
out-of-process controls no longer returns an error code. The control's |
| 162 |
client side is set to zero when the container releases the control. |
| 163 |
|
| 164 |
|
| 165 |
Qt Designer |
| 166 |
----------- |
| 167 |
|
| 168 |
Qt Designer, Qt's visual GUI builder, has received some speed |
| 169 |
optimizations, along with minor improvements to the menu editor. |
| 170 |
|
| 171 |
|
| 172 |
Qt Assistant |
| 173 |
------------ |
| 174 |
|
| 175 |
Qt Assistant now saves the states of the tab bars between runs. This |
| 176 |
enables users to start browsing where they ended their previous |
| 177 |
assistant session. |
| 178 |
|
| 179 |
Shortcuts for Find Next (F3) and Find Previous (Shift+F3) have been |
| 180 |
implemented. |
| 181 |
|
| 182 |
|
| 183 |
Compilers |
| 184 |
--------- |
| 185 |
|
| 186 |
Qt 3.3 adds support for two new compilers. The Intel C++ compiler is |
| 187 |
supported on Windows, Linux and FreeBSD. GNU gcc is supported on |
| 188 |
Windows using MinGW. |
| 189 |
|
| 190 |
Qt 3.3 no longer officially supports the Sun WorkShop 5.0 compiler or the |
| 191 |
SGI MIPSpro o32 mode. |
| 192 |
|
| 193 |
|
| 194 |
**************************************************************************** |
| 195 |
* Library * |
| 196 |
**************************************************************************** |
| 197 |
|
| 198 |
- QAction |
| 199 |
Added a setDisabled() slot similar to QWidget::setDisabled. |
| 200 |
Added an activate() slot which activates the action and |
| 201 |
executes all connected slots. |
| 202 |
QActions::menuText() escapes ampersand characters ('&') when |
| 203 |
using the value of the text property. |
| 204 |
|
| 205 |
- QButtonGroup |
| 206 |
Added QButtonGroup::selectedId property to allow mapping with |
| 207 |
SQL property sets. |
| 208 |
|
| 209 |
- QCursor |
| 210 |
Added new enum value Qt::BusyCursor. |
| 211 |
X11 only: Added QCursor constructor taking a X11 cursor handle. |
| 212 |
|
| 213 |
- QDom |
| 214 |
The QDom classes are now reentrant. |
| 215 |
|
| 216 |
- QEvent |
| 217 |
Added new event type WindowStateChange, obsoleting ShowNormal, |
| 218 |
ShowMinimized, ShowMaximized and ShowFullScreen. |
| 219 |
|
| 220 |
- QHeader |
| 221 |
The sizeChange() signal is emitted when the section sizes are |
| 222 |
adjusted by double clicking. |
| 223 |
|
| 224 |
- QHostAddress |
| 225 |
Added new constructor for IPv6 and new functions |
| 226 |
isIPv6Address() and toIPv6Address(). Obsoleted the functions |
| 227 |
isIp4Addr() and ip4Addr(), replacing them with isIPv4Address() |
| 228 |
and toIPv4Address(). |
| 229 |
|
| 230 |
- QIconView |
| 231 |
Improved keyboard search to behave like QListView. |
| 232 |
|
| 233 |
- QListView |
| 234 |
Improved alignment for text in QListViewItems. Right aligned |
| 235 |
text now has the ellipsis on the left. |
| 236 |
Keyboard search now uses the sort column as the column to |
| 237 |
start searching in. |
| 238 |
Improved branch drawing. |
| 239 |
|
| 240 |
- QLocale [new] |
| 241 |
This new tool class converts between numbers and their string |
| 242 |
representations in various languages. |
| 243 |
|
| 244 |
- QMacStyle |
| 245 |
Allow disabling of size constraints. |
| 246 |
|
| 247 |
- QMovie |
| 248 |
Added JNG support. |
| 249 |
|
| 250 |
- QPixmap |
| 251 |
Support full alpha-maps for paletted (8-bit) images. |
| 252 |
Support 16-bit grayscale PNG images with transparency. |
| 253 |
|
| 254 |
- QPushButton |
| 255 |
A push button with both an iconset and text left-aligns the |
| 256 |
text. |
| 257 |
|
| 258 |
- QSocketDevice |
| 259 |
Added setProtocol() and protocol() for IPv6 support. |
| 260 |
|
| 261 |
- QSound |
| 262 |
Windows: Support loop related APIs. |
| 263 |
|
| 264 |
- QSplashScreen |
| 265 |
Less intrusive stay-on-top policy. |
| 266 |
|
| 267 |
- QSql |
| 268 |
Support for InterBase and SQLite. |
| 269 |
|
| 270 |
- QStatusBar |
| 271 |
Draw messages with the foreground() color of the palette, |
| 272 |
rather than with the text() color. |
| 273 |
|
| 274 |
- QString |
| 275 |
Added support for %lc and %ls to sprintf(). %lc takes a |
| 276 |
Unicode character of type ushort, %ls takes a zero-terminated |
| 277 |
array of Unicode characters of type ushort (i.e. const |
| 278 |
ushort*). Also added support for precision (e.g. "%.5s"). |
| 279 |
Changed arg() to support "%L1" for localized conversions. |
| 280 |
Windows only: QString::local8Bit() now returns an empty |
| 281 |
QCString when called on a null QString to unify behavior |
| 282 |
with the other platforms. |
| 283 |
|
| 284 |
- QStyle |
| 285 |
Add a new primitive element: PE_RubberBand. |
| 286 |
Added PM_MenuBarItemSpacing and PM_ToolBarItemSpacing pixel metrics. |
| 287 |
|
| 288 |
- QTextDrag |
| 289 |
decode() now autodetects the encoding of text/html content. |
| 290 |
|
| 291 |
- QTextEdit |
| 292 |
Reduced memory consumption by 20 bytes per line. |
| 293 |
Added a getter for the currently set QSyntaxHighlighter. |
| 294 |
|
| 295 |
- QTextBrowser |
| 296 |
Qt now automatically detects the charset of HTML files set |
| 297 |
with setSource(). |
| 298 |
|
| 299 |
- QVariant |
| 300 |
Comparison between variants where one of the variants is a |
| 301 |
numeric value will compare on the numeric value. Type casting |
| 302 |
between different variants is more consistent. |
| 303 |
|
| 304 |
- QWidget |
| 305 |
Added setWindowOpacity() and windowOpacity() to support |
| 306 |
transparent top-level widgets on Windows and Mac. |
| 307 |
Added windowState() and setWindowState() to allow individual |
| 308 |
setting of the minimized/maximized/fullscreen properties. |
| 309 |
|
| 310 |
- QWindowsStyle |
| 311 |
Qt supports toggling of the accelerator underlines using the |
| 312 |
Alt-key on Windows 98, 2000 and later. On other platforms this |
| 313 |
change has no effect. |